From 50cbd3b162a17efe38d1e422bf9d8d50cecb5848 Mon Sep 17 00:00:00 2001 From: "arthur.valin" Date: Wed, 8 Feb 2023 17:30:59 +0100 Subject: [PATCH] Adding Skill MtoM, runes and runepages --- .vs/League-of-Legends_Project3/v17/.wsuo | Bin 14336 -> 18432 bytes .../Sources/Entities/ChampionDbContext.cs | 56 +++- .../Sources/Entities/ChampionEntity.cs | 4 + .../Sources/Entities/Entities.Champions.db | Bin 20480 -> 32768 bytes .../Entities/Entities.Champions.db-shm | Bin 32768 -> 32768 bytes .../Entities/Entities.Champions.db-wal | Bin 193672 -> 1182472 bytes ...0230204105739_myFirstMigration.Designer.cs | 118 -------- .../20230204105739_myFirstMigration.cs | 84 ------ ...0230208162909_myFirstMigration.Designer.cs | 268 ++++++++++++++++++ .../20230208162909_myFirstMigration.cs | 219 ++++++++++++++ .../ChampionDbContextModelSnapshot.cs | 150 ++++++++++ .../Sources/Entities/RuneEntity.cs | 27 ++ .../Sources/Entities/RunePageEntity.cs | 24 ++ .../Sources/Entities/SkillEntity.cs | 29 ++ 14 files changed, 773 insertions(+), 206 deletions(-) delete mode 100644 EntityFramework_LoL/Sources/Entities/Migrations/20230204105739_myFirstMigration.Designer.cs delete mode 100644 EntityFramework_LoL/Sources/Entities/Migrations/20230204105739_myFirstMigration.cs create mode 100644 EntityFramework_LoL/Sources/Entities/Migrations/20230208162909_myFirstMigration.Designer.cs create mode 100644 EntityFramework_LoL/Sources/Entities/Migrations/20230208162909_myFirstMigration.cs create mode 100644 EntityFramework_LoL/Sources/Entities/RuneEntity.cs create mode 100644 EntityFramework_LoL/Sources/Entities/RunePageEntity.cs create mode 100644 EntityFramework_LoL/Sources/Entities/SkillEntity.cs diff --git a/.vs/League-of-Legends_Project3/v17/.wsuo b/.vs/League-of-Legends_Project3/v17/.wsuo index 5e22404fe5fe2e1d66d4552f005e77589fd4dd91..e917b20bd7ac0407438812f450c49c21b2d86802 100644 GIT binary patch delta 1638 zcmb_c%}*0S6yMo?u+(k4v|5&rLQ5*C$iglyv_;g4=z%sV4IDg}D6}P-kZ4Fr2*#v0 zIdFh|{sqR1H=!5fsf3bvQm!T*{R1>92|b9uSGrA&BpPtqm!0{|d-FbiZ>I3Hu*o(j zm}UF=Fz<-VyVj4_J~J=Jad8K%@oOv!hkQ!BfIutCPaM$Z4nW?t!31Dtw{9~}5bD6) z7L<#1tz*Ot3lT9op$&y_V>ofWmG;R!`0YjUq4-hyP$ZP?be`$_l0*Go`q!{pUZw@K z{DCeEPZW_Ig`y+R22OKV9izE1tcclA+$bKDF16zRUXE1TywzFh(9p#xC_7ciizz!JW{7k{)6$NMeW;2Fk%;}xW!|2$a~4F+%?4Bq9;#OoA~~QM z8fUQ{SQ(fVh=K;>g~NfAXsSaExEofkrbHr)jx%6O7cNXtZJYkT1@IiPR;Ui91Y+B8 z26<&er=4PTu!ZSC2_)&AKpol8sEmAqJzj%KXy&AXjuh-UaqYlLQXf<2G_*^d$dEHZ z78YuF0jl=IpLV4GH#=pz<~KiteyHK7E`}f7Ylfqtq)2OD6Ap!L^gle)oMcd-R-vKy zmzW85`)^9Omh+ERmLJ@?>weK+J{o@wtX+k8Bo52|`|u?YkUmen;mY^EK6zhPC`y5E zOqV{KS{n;p_c^GZBjR;k#)hYK=w8wHbD=w55l(Ya#@@1q5s8^~oxVhiC+PRV9sV@f!e%_`CG;+QfzG9QbMMq}YnM&&q$ ze;z8m$s1_HJ&qGHsm#uetN42sn$JaIYDiOZ+CoOrw5+N`7b8(cRp-@AOw&|#H1eFT hx(PdFveso~-vktV0*HN4DEWf0)F*)O?bI*b4S delta 930 zcma)5-)qxQ6z)lrt=2S4+jVQZ`3ox)OJ}#VNv0W8Q&4Cj4!8F?oKJ#2bTEpHJc$o| zm^p&4qW{3UyzE6N*gs&e{s;a68>|mn&smze2ZbH-aqs=kmwUf+ZsP8N`)1FAE4`I_ zf^zh_^|oXF067wg^b^<-I-ui;;K)qG2_p(jP8F~n?ZPyIm|o9~X-;wc4u;VT@d<)L zm?EfzBq2{=$yFL90_!tlE=^;Wx!&q0@Pt>&{;j`;+`v%nKZYhhu20jezi2z&a)RcQ zgcyO3BI=BvrTM>XrHBu$vn|$h#Bo);-P>@%i*ICEa1qx?c%6Vd@v6uP+>aM~Yen$X zhRlVsfOiRcraJgtSd`epE)LbE%>4*!4L zX=SsvwOOtjx>0_v@zQ*;tZy#9)T`QZBm(pR9zSeh!?Lg skins { get; set; } public DbSet champions { get; set; } + public DbSet skills { get; set; } + public DbSet runes { get; set; } + public DbSet runepages { get; set; } + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlite($"Data Source=Entities.Champions.db"); @@ -16,22 +21,25 @@ namespace Entities protected override void OnModelCreating(ModelBuilder modelBuilder) { + modelBuilder.Entity().Property(e => e.Id).ValueGeneratedOnAdd(); + + modelBuilder.Entity().HasData(new List() { new() { Name = "Dave", Bio = "Le meilleur Jazzman de France", - Class = ChampionClass.Fighter + Class = ChampionClass.Fighter, + }, new() { - Name = "Armure", + Name = "Armure", Bio = "Solide", - Class = ChampionClass.Tank + Class = ChampionClass.Tank, } }); - modelBuilder.Entity().HasData(new List() { new SkinEntity { @@ -50,6 +58,46 @@ namespace Entities Price=9.99F }, }); + + modelBuilder.Entity().HasData(new List() { + new() + { + Name = "Boule de feu", + Description = "Fire!", + SkillType = SkillType.Basic + }, + new() + { + Name = "White Star", + Description = "Random damage", + SkillType = SkillType.Ultimate + } + }); + + modelBuilder.Entity().HasData(new List() + { + new() + { + Id = Guid.NewGuid(), + Name="Runepage_1" + } + }); + + modelBuilder.Entity().HasData(new List() { + new() + { + Name = "Bullseye", + Description = "Steady shot", + RuneFamily = RuneFamily.Precision + }, + new() + { + Name = "Alkatraz", + Description = "Lock effect", + RuneFamily = RuneFamily.Domination + } + }); + } } } diff --git a/EntityFramework_LoL/Sources/Entities/ChampionEntity.cs b/EntityFramework_LoL/Sources/Entities/ChampionEntity.cs index 8ed2a5c..eea4371 100644 --- a/EntityFramework_LoL/Sources/Entities/ChampionEntity.cs +++ b/EntityFramework_LoL/Sources/Entities/ChampionEntity.cs @@ -1,5 +1,7 @@ using Shared; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + namespace Entities { public class ChampionEntity @@ -13,6 +15,8 @@ namespace Entities public string? Icon { get; set; } [Required] public ChampionClass Class { get; set;} + + public virtual ICollection? Skills { get; set; } } } diff --git a/EntityFramework_LoL/Sources/Entities/Entities.Champions.db b/EntityFramework_LoL/Sources/Entities/Entities.Champions.db index 2643996e4069079cab2a9c289dd5eca80da0fc2f..301c8f4c5ac6b9533bdc98b5b32410e1b9e0753b 100644 GIT binary patch literal 32768 zcmeI)&2QUe90zc}G)`NZK0xWLGNC?lHM$~J#Yv-R2gI_(DWO?X(g3XlvP|;O8S+x> zWTFEOt;8Ae7a*i@KnVT-j!fJqj+1skoRHXY6XL{UCvlU`h8;FBiSHvNeQf{yynLQV zk^DSXcit%5Jx1T}I&G^*)56n&Bng)&6$D|9f2R3ol;(M6YIMN=ievex?3}P}KA#|e z3h}4D6Xt&*-zRR(e>L}F;v0U51OW&@00Izz00bZa0SH739LD2nUKNkd*_|f)xU_4! zAKD$)%wM(I2X?np>^jWe?`*L{|NL~mX5{JyEmaD}F4g`aT%*+r)%=?@dR}|5JZEL7=hk@fQEe>01Hip_^?iwvtYes3a;&mfJk~gVn)Qn2r*r8fbnCI?et$AZnFvmLuNf$on-{HQF))#YXJc;6qXpoSnb zH92CzdESJFAGNW&LPqYg-F=7=uV-Cox@3_U4L%7n(8CGDtVP3AVB~E z5P$##AOHafKmY;|fB*#k7Xqt_yrrg+sdO@x+|ZMmZ2F?vJ}laf+Y6riv+K$A)M{)Z zFtw4%Mg&ex2I_iLpga-C8xU2sG!~e=m`P^z@T$*>a(dJmUC(T!^`zP6DVPsC6S^=EI~5bQ zCNMP_6S^EAkH_MlD#aEz1+idVV`WC$%x<+<-=VKt*RQv&4s9}8bgWK;NzaP0r6obkIqkl~cDgOQ z$rNw@Um|w}a-ZBKcb?QPqFoSx00bZa0SG_<0uX=z1Rwwb2t*1Hc||O>9h>GYr^j0I zw7lpq6G$`i(#&8PV6gvxLm;=vjmUCv0Rj+!00bZa0SG_<0uX=z1Rwx`$1d=aq^!QM z5MT6m_`U7?{g%~WMyJF7-RI43Ez7#JeD9|(-Z_8YyS^?e7tSukmj+MwwAgR8+ylm% z1@?hOul2p?mA`)7{NcGz1`&h(|J&aC|F<7|M^FI-AOHafKmY;|fB*y_009U<00NI# z;2C+<-|P=o45S75!f@CBWL;qV{r^YY02BuS2tWV=5P$##AOHafKmY;|fWUtt5c2;2 E-$sHo>i_@% delta 138 zcmZo@U}{*vI6+#FiGhKE6^LPgX`+s?C=-KTyc9404+a+A*9?4@_}B8j=9|A+QJ|cc ztI?2|U0hzCvB_}qE#3v2r}E`9vN7^MX5fFkS+L+H|K!K=ia`EL2L6{o{vCd1pt+M@ U>Ps^*2!Qz$C&;mJf$V~F0i1awi2wiq diff --git a/EntityFramework_LoL/Sources/Entities/Entities.Champions.db-shm b/EntityFramework_LoL/Sources/Entities/Entities.Champions.db-shm index 18b64da578481efb11a35cf814fcb859e07a06f0..9cd8351f1caa059d87461e18d8ce17a5864f487c 100644 GIT binary patch literal 32768 zcmeI5cW@O|6oFxJB(0wMQr@zh0gz86xr_vW)?>L zy1?dzb$tJIKYlNMoo$_!=_oc$C1#~&@z}clu%^1cx?1A*%PhX!tir6JStB#AAL9I; z`{TJG&Yu_Rg#6&kl$WiB##X0EtX_D2@VU0|T-O|rbw(cR>+^Z0oFv+unQQePaBgvJ z&dy`QUIu+W&yYKmYKmYKmYKmYKmY zKmYKmjnuh$y=M|vUj$0+9FtmBV;#0&Kh9<*Z_`-aUtf4tC$9-acFIDX`=TcuXj`8vLjGn=cJX}*=p5xo>WWP z(4I9|i}l!$joFIbIDlg~mkHd#W4z0ERI2~81FYygCeVqlY{J&;L_coGNvD9`Bx{B_pst-Pn|E*p-7gk#XF}T|CSC{7JR?J{ekN=RJYWbf*VB>CeHO z#Q99(Zl31@JIJ%Cx=*2*Wa0(YNnR|GFMMP0E^?fp^%1#M^ZP}SY9Kxww z$TdvkUS4J~MNxCT0V&x*$;_QVZ~Cw|hjJ{ZGoEXi&MaQxLmEUa)c?6-Rc0y(Y{wo9 zo&%;QO(<3(QOO+MyJTC3|*v2zlcoWO%T#an#BSF};rC&#G@sUq+xU-Kis y@fQVAaa10))jN=?{gc=v1U}<;+NtA{AXIK@34G2^R7BywZfl5u2#7#t0)GRof361r delta 201 zcmZo@U}|V!s+V}A%K!qbK+MR%ARq!|Ct3G*WxNb;Fz~nPbrr}l_Sk-6#i5G(R-~#2 znGFIUbN?d&upk2i69d!4#_-K7tiNnG3$W_2O#bJ@v6+eW8xu1-1OH}5*56Fb91H?r c#^fK~JV2>WOq@(W*K#rNG6-${&%$U307im1A^-pY diff --git a/EntityFramework_LoL/Sources/Entities/Entities.Champions.db-wal b/EntityFramework_LoL/Sources/Entities/Entities.Champions.db-wal index c9dd03312ea6cff13b2470c6ae0af47294a4cf80..c02c794b78df6f8d8b92ee5a382d78297cb471e1 100644 GIT binary patch literal 1182472 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 pWup&w?)%!$FfQ -using Entities; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace Entities.Migrations -{ - [DbContext(typeof(ChampionDbContext))] - [Migration("20230204105739_myFirstMigration")] - partial class myFirstMigration - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder.HasAnnotation("ProductVersion", "7.0.2"); - - modelBuilder.Entity("Entities.ChampionEntity", b => - { - b.Property("Name") - .HasMaxLength(256) - .HasColumnType("TEXT"); - - b.Property("Bio") - .IsRequired() - .HasMaxLength(500) - .HasColumnType("TEXT"); - - b.Property("Class") - .HasColumnType("INTEGER"); - - b.Property("Icon") - .HasColumnType("TEXT"); - - b.HasKey("Name"); - - b.ToTable("champions"); - - b.HasData( - new - { - Name = "Dave", - Bio = "Le meilleur Jazzman de France", - Class = 2 - }, - new - { - Name = "Armure", - Bio = "Solide", - Class = 6 - }); - }); - - modelBuilder.Entity("Entities.SkinEntity", b => - { - b.Property("Name") - .HasMaxLength(256) - .HasColumnType("TEXT"); - - b.Property("ChampionForeignKey") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Description") - .IsRequired() - .HasMaxLength(500) - .HasColumnType("TEXT"); - - b.Property("Icon") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Price") - .HasColumnType("REAL"); - - b.HasKey("Name"); - - b.HasIndex("ChampionForeignKey"); - - b.ToTable("skins"); - - b.HasData( - new - { - Name = "Dave de glace", - ChampionForeignKey = "Dave", - Description = "Enneigé", - Icon = "aaa", - Price = 7.99f - }, - new - { - Name = "Armure Fullspeed", - ChampionForeignKey = "Armure", - Description = "Deja vu", - Icon = "aaa", - Price = 9.99f - }); - }); - - modelBuilder.Entity("Entities.SkinEntity", b => - { - b.HasOne("Entities.ChampionEntity", "Champion") - .WithMany() - .HasForeignKey("ChampionForeignKey") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Champion"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/EntityFramework_LoL/Sources/Entities/Migrations/20230204105739_myFirstMigration.cs b/EntityFramework_LoL/Sources/Entities/Migrations/20230204105739_myFirstMigration.cs deleted file mode 100644 index a628a29..0000000 --- a/EntityFramework_LoL/Sources/Entities/Migrations/20230204105739_myFirstMigration.cs +++ /dev/null @@ -1,84 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional - -namespace Entities.Migrations -{ - /// - public partial class myFirstMigration : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "champions", - columns: table => new - { - Name = table.Column(type: "TEXT", maxLength: 256, nullable: false), - Bio = table.Column(type: "TEXT", maxLength: 500, nullable: false), - Icon = table.Column(type: "TEXT", nullable: true), - Class = table.Column(type: "INTEGER", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_champions", x => x.Name); - }); - - migrationBuilder.CreateTable( - name: "skins", - columns: table => new - { - Name = table.Column(type: "TEXT", maxLength: 256, nullable: false), - Description = table.Column(type: "TEXT", maxLength: 500, nullable: false), - Icon = table.Column(type: "TEXT", nullable: false), - Price = table.Column(type: "REAL", nullable: false), - ChampionForeignKey = table.Column(type: "TEXT", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_skins", x => x.Name); - table.ForeignKey( - name: "FK_skins_champions_ChampionForeignKey", - column: x => x.ChampionForeignKey, - principalTable: "champions", - principalColumn: "Name", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.InsertData( - table: "champions", - columns: new[] { "Name", "Bio", "Class", "Icon" }, - values: new object[,] - { - { "Armure", "Solide", 6, null }, - { "Dave", "Le meilleur Jazzman de France", 2, null } - }); - - migrationBuilder.InsertData( - table: "skins", - columns: new[] { "Name", "ChampionForeignKey", "Description", "Icon", "Price" }, - values: new object[,] - { - { "Armure Fullspeed", "Armure", "Deja vu", "aaa", 9.99f }, - { "Dave de glace", "Dave", "Enneigé", "aaa", 7.99f } - }); - - migrationBuilder.CreateIndex( - name: "IX_skins_ChampionForeignKey", - table: "skins", - column: "ChampionForeignKey"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "skins"); - - migrationBuilder.DropTable( - name: "champions"); - } - } -} diff --git a/EntityFramework_LoL/Sources/Entities/Migrations/20230208162909_myFirstMigration.Designer.cs b/EntityFramework_LoL/Sources/Entities/Migrations/20230208162909_myFirstMigration.Designer.cs new file mode 100644 index 0000000..130ec85 --- /dev/null +++ b/EntityFramework_LoL/Sources/Entities/Migrations/20230208162909_myFirstMigration.Designer.cs @@ -0,0 +1,268 @@ +// +using System; +using Entities; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace Entities.Migrations +{ + [DbContext(typeof(ChampionDbContext))] + [Migration("20230208162909_myFirstMigration")] + partial class myFirstMigration + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "7.0.2"); + + modelBuilder.Entity("ChampionEntitySkillEntity", b => + { + b.Property("ChampionsName") + .HasColumnType("TEXT"); + + b.Property("SkillsName") + .HasColumnType("TEXT"); + + b.HasKey("ChampionsName", "SkillsName"); + + b.HasIndex("SkillsName"); + + b.ToTable("ChampionEntitySkillEntity"); + }); + + modelBuilder.Entity("Entities.ChampionEntity", b => + { + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("Bio") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("Class") + .HasColumnType("INTEGER"); + + b.Property("Icon") + .HasColumnType("TEXT"); + + b.HasKey("Name"); + + b.ToTable("champions"); + + b.HasData( + new + { + Name = "Dave", + Bio = "Le meilleur Jazzman de France", + Class = 2 + }, + new + { + Name = "Armure", + Bio = "Solide", + Class = 6 + }); + }); + + modelBuilder.Entity("Entities.RuneEntity", b => + { + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("RuneFamily") + .HasColumnType("INTEGER"); + + b.HasKey("Name"); + + b.ToTable("runes"); + + b.HasData( + new + { + Name = "Bullseye", + Description = "Steady shot", + RuneFamily = 1 + }, + new + { + Name = "Alkatraz", + Description = "Lock effect", + RuneFamily = 2 + }); + }); + + modelBuilder.Entity("Entities.RunePageEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("runepages"); + + b.HasData( + new + { + Id = new Guid("78729bae-c931-4a75-9662-6754ed8e2ce3"), + Name = "Runepage_1" + }); + }); + + modelBuilder.Entity("Entities.SkillEntity", b => + { + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("SkillType") + .HasColumnType("INTEGER"); + + b.HasKey("Name"); + + b.ToTable("skills"); + + b.HasData( + new + { + Name = "Boule de feu", + Description = "Fire!", + SkillType = 1 + }, + new + { + Name = "White Star", + Description = "Random damage", + SkillType = 3 + }); + }); + + modelBuilder.Entity("Entities.SkinEntity", b => + { + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("ChampionForeignKey") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("Icon") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("Price") + .HasColumnType("REAL"); + + b.HasKey("Name"); + + b.HasIndex("ChampionForeignKey"); + + b.ToTable("skins"); + + b.HasData( + new + { + Name = "Dave de glace", + ChampionForeignKey = "Dave", + Description = "Enneigé", + Icon = "aaa", + Price = 7.99f + }, + new + { + Name = "Armure Fullspeed", + ChampionForeignKey = "Armure", + Description = "Deja vu", + Icon = "aaa", + Price = 9.99f + }); + }); + + modelBuilder.Entity("RuneEntityRunePageEntity", b => + { + b.Property("runepagesId") + .HasColumnType("TEXT"); + + b.Property("runesName") + .HasColumnType("TEXT"); + + b.HasKey("runepagesId", "runesName"); + + b.HasIndex("runesName"); + + b.ToTable("RuneEntityRunePageEntity"); + }); + + modelBuilder.Entity("ChampionEntitySkillEntity", b => + { + b.HasOne("Entities.ChampionEntity", null) + .WithMany() + .HasForeignKey("ChampionsName") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Entities.SkillEntity", null) + .WithMany() + .HasForeignKey("SkillsName") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Entities.SkinEntity", b => + { + b.HasOne("Entities.ChampionEntity", "Champion") + .WithMany() + .HasForeignKey("ChampionForeignKey") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Champion"); + }); + + modelBuilder.Entity("RuneEntityRunePageEntity", b => + { + b.HasOne("Entities.RunePageEntity", null) + .WithMany() + .HasForeignKey("runepagesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Entities.RuneEntity", null) + .WithMany() + .HasForeignKey("runesName") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/EntityFramework_LoL/Sources/Entities/Migrations/20230208162909_myFirstMigration.cs b/EntityFramework_LoL/Sources/Entities/Migrations/20230208162909_myFirstMigration.cs new file mode 100644 index 0000000..62248a1 --- /dev/null +++ b/EntityFramework_LoL/Sources/Entities/Migrations/20230208162909_myFirstMigration.cs @@ -0,0 +1,219 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional + +namespace Entities.Migrations +{ + /// + public partial class myFirstMigration : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "champions", + columns: table => new + { + Name = table.Column(type: "TEXT", maxLength: 256, nullable: false), + Bio = table.Column(type: "TEXT", maxLength: 500, nullable: false), + Icon = table.Column(type: "TEXT", nullable: true), + Class = table.Column(type: "INTEGER", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_champions", x => x.Name); + }); + + migrationBuilder.CreateTable( + name: "runepages", + columns: table => new + { + Id = table.Column(type: "TEXT", nullable: false), + Name = table.Column(type: "TEXT", maxLength: 256, nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_runepages", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "runes", + columns: table => new + { + Name = table.Column(type: "TEXT", maxLength: 256, nullable: false), + Description = table.Column(type: "TEXT", maxLength: 500, nullable: false), + RuneFamily = table.Column(type: "INTEGER", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_runes", x => x.Name); + }); + + migrationBuilder.CreateTable( + name: "skills", + columns: table => new + { + Name = table.Column(type: "TEXT", maxLength: 256, nullable: false), + Description = table.Column(type: "TEXT", maxLength: 500, nullable: false), + SkillType = table.Column(type: "INTEGER", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_skills", x => x.Name); + }); + + migrationBuilder.CreateTable( + name: "skins", + columns: table => new + { + Name = table.Column(type: "TEXT", maxLength: 256, nullable: false), + Description = table.Column(type: "TEXT", maxLength: 500, nullable: false), + Icon = table.Column(type: "TEXT", nullable: false), + Price = table.Column(type: "REAL", nullable: false), + ChampionForeignKey = table.Column(type: "TEXT", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_skins", x => x.Name); + table.ForeignKey( + name: "FK_skins_champions_ChampionForeignKey", + column: x => x.ChampionForeignKey, + principalTable: "champions", + principalColumn: "Name", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "RuneEntityRunePageEntity", + columns: table => new + { + runepagesId = table.Column(type: "TEXT", nullable: false), + runesName = table.Column(type: "TEXT", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_RuneEntityRunePageEntity", x => new { x.runepagesId, x.runesName }); + table.ForeignKey( + name: "FK_RuneEntityRunePageEntity_runepages_runepagesId", + column: x => x.runepagesId, + principalTable: "runepages", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_RuneEntityRunePageEntity_runes_runesName", + column: x => x.runesName, + principalTable: "runes", + principalColumn: "Name", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "ChampionEntitySkillEntity", + columns: table => new + { + ChampionsName = table.Column(type: "TEXT", nullable: false), + SkillsName = table.Column(type: "TEXT", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ChampionEntitySkillEntity", x => new { x.ChampionsName, x.SkillsName }); + table.ForeignKey( + name: "FK_ChampionEntitySkillEntity_champions_ChampionsName", + column: x => x.ChampionsName, + principalTable: "champions", + principalColumn: "Name", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_ChampionEntitySkillEntity_skills_SkillsName", + column: x => x.SkillsName, + principalTable: "skills", + principalColumn: "Name", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.InsertData( + table: "champions", + columns: new[] { "Name", "Bio", "Class", "Icon" }, + values: new object[,] + { + { "Armure", "Solide", 6, null }, + { "Dave", "Le meilleur Jazzman de France", 2, null } + }); + + migrationBuilder.InsertData( + table: "runepages", + columns: new[] { "Id", "Name" }, + values: new object[] { new Guid("78729bae-c931-4a75-9662-6754ed8e2ce3"), "Runepage_1" }); + + migrationBuilder.InsertData( + table: "runes", + columns: new[] { "Name", "Description", "RuneFamily" }, + values: new object[,] + { + { "Alkatraz", "Lock effect", 2 }, + { "Bullseye", "Steady shot", 1 } + }); + + migrationBuilder.InsertData( + table: "skills", + columns: new[] { "Name", "Description", "SkillType" }, + values: new object[,] + { + { "Boule de feu", "Fire!", 1 }, + { "White Star", "Random damage", 3 } + }); + + migrationBuilder.InsertData( + table: "skins", + columns: new[] { "Name", "ChampionForeignKey", "Description", "Icon", "Price" }, + values: new object[,] + { + { "Armure Fullspeed", "Armure", "Deja vu", "aaa", 9.99f }, + { "Dave de glace", "Dave", "Enneigé", "aaa", 7.99f } + }); + + migrationBuilder.CreateIndex( + name: "IX_ChampionEntitySkillEntity_SkillsName", + table: "ChampionEntitySkillEntity", + column: "SkillsName"); + + migrationBuilder.CreateIndex( + name: "IX_RuneEntityRunePageEntity_runesName", + table: "RuneEntityRunePageEntity", + column: "runesName"); + + migrationBuilder.CreateIndex( + name: "IX_skins_ChampionForeignKey", + table: "skins", + column: "ChampionForeignKey"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "ChampionEntitySkillEntity"); + + migrationBuilder.DropTable( + name: "RuneEntityRunePageEntity"); + + migrationBuilder.DropTable( + name: "skins"); + + migrationBuilder.DropTable( + name: "skills"); + + migrationBuilder.DropTable( + name: "runepages"); + + migrationBuilder.DropTable( + name: "runes"); + + migrationBuilder.DropTable( + name: "champions"); + } + } +} diff --git a/EntityFramework_LoL/Sources/Entities/Migrations/ChampionDbContextModelSnapshot.cs b/EntityFramework_LoL/Sources/Entities/Migrations/ChampionDbContextModelSnapshot.cs index f17b1cf..7679554 100644 --- a/EntityFramework_LoL/Sources/Entities/Migrations/ChampionDbContextModelSnapshot.cs +++ b/EntityFramework_LoL/Sources/Entities/Migrations/ChampionDbContextModelSnapshot.cs @@ -1,4 +1,5 @@ // +using System; using Entities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -16,6 +17,21 @@ namespace Entities.Migrations #pragma warning disable 612, 618 modelBuilder.HasAnnotation("ProductVersion", "7.0.2"); + modelBuilder.Entity("ChampionEntitySkillEntity", b => + { + b.Property("ChampionsName") + .HasColumnType("TEXT"); + + b.Property("SkillsName") + .HasColumnType("TEXT"); + + b.HasKey("ChampionsName", "SkillsName"); + + b.HasIndex("SkillsName"); + + b.ToTable("ChampionEntitySkillEntity"); + }); + modelBuilder.Entity("Entities.ChampionEntity", b => { b.Property("Name") @@ -52,6 +68,95 @@ namespace Entities.Migrations }); }); + modelBuilder.Entity("Entities.RuneEntity", b => + { + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("RuneFamily") + .HasColumnType("INTEGER"); + + b.HasKey("Name"); + + b.ToTable("runes"); + + b.HasData( + new + { + Name = "Bullseye", + Description = "Steady shot", + RuneFamily = 1 + }, + new + { + Name = "Alkatraz", + Description = "Lock effect", + RuneFamily = 2 + }); + }); + + modelBuilder.Entity("Entities.RunePageEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("runepages"); + + b.HasData( + new + { + Id = new Guid("78729bae-c931-4a75-9662-6754ed8e2ce3"), + Name = "Runepage_1" + }); + }); + + modelBuilder.Entity("Entities.SkillEntity", b => + { + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("SkillType") + .HasColumnType("INTEGER"); + + b.HasKey("Name"); + + b.ToTable("skills"); + + b.HasData( + new + { + Name = "Boule de feu", + Description = "Fire!", + SkillType = 1 + }, + new + { + Name = "White Star", + Description = "Random damage", + SkillType = 3 + }); + }); + modelBuilder.Entity("Entities.SkinEntity", b => { b.Property("Name") @@ -99,6 +204,36 @@ namespace Entities.Migrations }); }); + modelBuilder.Entity("RuneEntityRunePageEntity", b => + { + b.Property("runepagesId") + .HasColumnType("TEXT"); + + b.Property("runesName") + .HasColumnType("TEXT"); + + b.HasKey("runepagesId", "runesName"); + + b.HasIndex("runesName"); + + b.ToTable("RuneEntityRunePageEntity"); + }); + + modelBuilder.Entity("ChampionEntitySkillEntity", b => + { + b.HasOne("Entities.ChampionEntity", null) + .WithMany() + .HasForeignKey("ChampionsName") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Entities.SkillEntity", null) + .WithMany() + .HasForeignKey("SkillsName") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + modelBuilder.Entity("Entities.SkinEntity", b => { b.HasOne("Entities.ChampionEntity", "Champion") @@ -109,6 +244,21 @@ namespace Entities.Migrations b.Navigation("Champion"); }); + + modelBuilder.Entity("RuneEntityRunePageEntity", b => + { + b.HasOne("Entities.RunePageEntity", null) + .WithMany() + .HasForeignKey("runepagesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Entities.RuneEntity", null) + .WithMany() + .HasForeignKey("runesName") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); #pragma warning restore 612, 618 } } diff --git a/EntityFramework_LoL/Sources/Entities/RuneEntity.cs b/EntityFramework_LoL/Sources/Entities/RuneEntity.cs new file mode 100644 index 0000000..a89d1a4 --- /dev/null +++ b/EntityFramework_LoL/Sources/Entities/RuneEntity.cs @@ -0,0 +1,27 @@ +using Shared; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Entities +{ + public class RuneEntity + { + [Key] + [MaxLength(256)] + public string Name { get; set; } + + [Required] + [MaxLength(500)] + public string Description { get; set; } + + [Required] + public RuneFamily RuneFamily { get; set; } + public ICollection runepages { get; set; } + + + } +} diff --git a/EntityFramework_LoL/Sources/Entities/RunePageEntity.cs b/EntityFramework_LoL/Sources/Entities/RunePageEntity.cs new file mode 100644 index 0000000..ce2ae88 --- /dev/null +++ b/EntityFramework_LoL/Sources/Entities/RunePageEntity.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Entities +{ + public class RunePageEntity + { + + [Key] + public Guid Id { get; set; } + + [MaxLength(256)] + public string Name { get; set; } + + public ICollection runes { get; set; } + + + } +} diff --git a/EntityFramework_LoL/Sources/Entities/SkillEntity.cs b/EntityFramework_LoL/Sources/Entities/SkillEntity.cs new file mode 100644 index 0000000..51a4ffd --- /dev/null +++ b/EntityFramework_LoL/Sources/Entities/SkillEntity.cs @@ -0,0 +1,29 @@ +using Shared; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Entities +{ + public class SkillEntity + { + [Key] + [MaxLength(256)] + public string Name { get; set; } + + [Required] + [MaxLength(500)] + public string Description { get; set; } + + [Required] + public SkillType SkillType { get; set; } + + public virtual ICollection? Champions { get; set; } + + + } +}