From 6ea4c2733e60625a3288d30a537751a6f7b0483e Mon Sep 17 00:00:00 2001 From: "emre.kartal" Date: Wed, 22 Feb 2023 17:35:11 +0100 Subject: [PATCH] Create new Class --- .vs/LolProject/v17/.suo | Bin 13824 -> 12800 bytes .../Sources/MyFlib/DataBase.db | Bin 24576 -> 24576 bytes .../Sources/MyFlib/Entities/ChampionEntity.cs | 8 +++-- .../MyFlib/Entities/LargeImageEntity.cs | 16 ++++++++++ .../Sources/MyFlib/Entities/SkillEntity.cs | 24 ++++++++++++++ .../Sources/MyFlib/Entities/SkinEntity.cs | 25 +++++++++++++++ .../enums/ChampionClassEntity.cs | 0 .../MyFlib/Entities/enums/SkillTypeEntity.cs | 16 ++++++++++ .../Sources/MyFlib/LolDbContext.cs | 30 ++++++++++++++---- .../Sources/MyFlib/Program.cs | 11 +++++-- .../Sources/Tests/UT_EF/ChampionsTest.cs | 6 +++- 11 files changed, 124 insertions(+), 12 deletions(-) create mode 100644 src/EntityFramework_LoL/Sources/MyFlib/Entities/LargeImageEntity.cs create mode 100644 src/EntityFramework_LoL/Sources/MyFlib/Entities/SkillEntity.cs create mode 100644 src/EntityFramework_LoL/Sources/MyFlib/Entities/SkinEntity.cs rename src/EntityFramework_LoL/Sources/MyFlib/{ => Entities}/enums/ChampionClassEntity.cs (100%) create mode 100644 src/EntityFramework_LoL/Sources/MyFlib/Entities/enums/SkillTypeEntity.cs diff --git a/.vs/LolProject/v17/.suo b/.vs/LolProject/v17/.suo index cb24cbd2ddbc7d4364303b162eecfeb1a9ccf79e..d1429b741d17900fbbefb3831fac48667ed298ac 100644 GIT binary patch delta 1096 zcmZq3X-L`N!^FrwS&>Pevq0Yc#A&yijAD~Zna)ic z4+N7LB~>PWVb*Zr1`7NG3J60b1b{RL5c5F!AjN_}HZPP9QVRp(Krv1r-Wa%maT1dc z)CCP!U5Ix9yNU-F)MSvUd_cAklrIXTL9PJV2(uleh94>qVuR$6U9pMFgM|a+B#^$lYfeO^DqNhvQT9ZC1U4!89|8+l+X|w#r=7~i5-*?V4{gKkCW zoQ3`Xe}I~Gv7#Wj(26TJuKWcuLbIvfGjm5KT}T%lINW=`bMN`icg~sKYH$5jQy^ZL z6i$!rt-XEuW9&ekZi2tWJzinNR_9JhG! zCjZ>@Z^rAA*Gbw^Lwzm9gE5^rwnkqIY7^JsvH!Y^VJ0{UI*rQ`?EBlt5QfaaAli_z zaE=-~r&wE-I3u##DaBd}L6M>>7odqf83m@?;GD{Omu$)>7?^ZBdZ$?G$tHXdRG_J+ zM(&2CF5|vKb6*sz(BUEU+%0d~1sD;DL|_p7WDScdNd5g#NI0Xflyz;kR8Y&EPNAY# zwZih1Qn{e5RA+U)qgG}r9VkS<8QA~?aupfJ<%r}sKu#?DWAoKD6RLPo^tKF}LwYOWu{yPle2(YIj#h9?2LwZd_ zu?j;Iz^l+VFUrKo*P$*>0nM_T#~|ub!|I#6AwWZR)vZC83X|Z%^g@wpUE0+sz4u_P e+eHcex#F(qTh;XC&2@T*-ruN}r~AI*FYzz-aLTj* diff --git a/src/EntityFramework_LoL/Sources/MyFlib/DataBase.db b/src/EntityFramework_LoL/Sources/MyFlib/DataBase.db index 2553478a6f1132b671abf415c17cf66a8a22b24f..f1405c5c7719449496b283a6c631ae5013545dc4 100644 GIT binary patch delta 515 zcma)&F;Buk7>0WkC^fW&2q6IngA5EFxx4n-YfOx7xrPPe!c2$~WdIV;860#*om~9` z#`F&`8jUM)cJ@bjP24n*FL}228J=&k0*e(`R`OLzlG1|Y54*SfW~wSRYK!O7oh(R4 zSJ_qq$kD3~!FD{#2qaAajJ0H}qkQhoIFRZv*DJP0U8js+>BA+&sCL!Sf~a?fNa#FouGuGZx) zusII6M+4}ZmMexXg3LxP=u}%CjAst|-+*_vN&_ z3bgoUwV48$_|1Y~EeT~MiYWp1La`Td&Uv+GEt78nRTKy!6cNNRryh2X2iN=kvtj45 ze{t?rQI#aBoMcT(lHApP78n~9RT%&K_pN;T(dt=D=8M*t7<#*8nx^4L#Alcj=!t+q z=0-mB5$DkL>H(U6;m`@?A7kM4}G^jyW5FU6nk46DH=!~vLnfU#Pf~P&lS&`ov s)>N@R?GO9ezKfmBTWh>TU1M8qFV!)d1b Skills { get; set; } } } diff --git a/src/EntityFramework_LoL/Sources/MyFlib/Entities/LargeImageEntity.cs b/src/EntityFramework_LoL/Sources/MyFlib/Entities/LargeImageEntity.cs new file mode 100644 index 0000000..8492da0 --- /dev/null +++ b/src/EntityFramework_LoL/Sources/MyFlib/Entities/LargeImageEntity.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MyFlib +{ + public class LargeImageEntity + { + [Key] + public string Base64 { get; set; } + + } +} diff --git a/src/EntityFramework_LoL/Sources/MyFlib/Entities/SkillEntity.cs b/src/EntityFramework_LoL/Sources/MyFlib/Entities/SkillEntity.cs new file mode 100644 index 0000000..fa87c23 --- /dev/null +++ b/src/EntityFramework_LoL/Sources/MyFlib/Entities/SkillEntity.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MyFlib +{ + public class SkillEntity + { + [Key] + [MaxLength(256)] + public string Name { get; set; } + + [Required] + [MaxLength(500)] + public string Description { get; set; } + + [Required] + public SkillTypeEntity Type { get; set; } + + } +} diff --git a/src/EntityFramework_LoL/Sources/MyFlib/Entities/SkinEntity.cs b/src/EntityFramework_LoL/Sources/MyFlib/Entities/SkinEntity.cs new file mode 100644 index 0000000..772e162 --- /dev/null +++ b/src/EntityFramework_LoL/Sources/MyFlib/Entities/SkinEntity.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MyFlib +{ + public class SkinEntity + { + [Key] + [MaxLength(256)] + public string Name { get; set; } + [Required] + [MaxLength(500)] + public string Description { get; set; } + [Required] + public string Icon { get; set; } + [Required] + public float Price { get; set; } + public LargeImageEntity Image { get; set; } + + } +} diff --git a/src/EntityFramework_LoL/Sources/MyFlib/enums/ChampionClassEntity.cs b/src/EntityFramework_LoL/Sources/MyFlib/Entities/enums/ChampionClassEntity.cs similarity index 100% rename from src/EntityFramework_LoL/Sources/MyFlib/enums/ChampionClassEntity.cs rename to src/EntityFramework_LoL/Sources/MyFlib/Entities/enums/ChampionClassEntity.cs diff --git a/src/EntityFramework_LoL/Sources/MyFlib/Entities/enums/SkillTypeEntity.cs b/src/EntityFramework_LoL/Sources/MyFlib/Entities/enums/SkillTypeEntity.cs new file mode 100644 index 0000000..73c36e5 --- /dev/null +++ b/src/EntityFramework_LoL/Sources/MyFlib/Entities/enums/SkillTypeEntity.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MyFlib +{ + public enum SkillTypeEntity + { + Unknown, + Basic, + Passive, + Ultimate + } +} diff --git a/src/EntityFramework_LoL/Sources/MyFlib/LolDbContext.cs b/src/EntityFramework_LoL/Sources/MyFlib/LolDbContext.cs index 5ff7132..abe8c71 100644 --- a/src/EntityFramework_LoL/Sources/MyFlib/LolDbContext.cs +++ b/src/EntityFramework_LoL/Sources/MyFlib/LolDbContext.cs @@ -10,6 +10,9 @@ namespace MyFlib public class LolDbContext : DbContext { public DbSet Champions { get; set; } + public DbSet Skills { get; set; } + public DbSet Skins { get; set; } + public DbSet Images { get; set; } public LolDbContext() { } @@ -28,12 +31,27 @@ namespace MyFlib modelBuilder.Entity().HasKey(e => e.Id); modelBuilder.Entity().Property(e => e.Id).ValueGeneratedOnAdd(); modelBuilder.Entity().HasData( - new ChampionEntity { Id = Guid.Parse("{4422C524-B2CB-43EF-8263-990C3CEA7CAE}"), Name = "Akali", Class = ChampionClassEntity.Assassin, Bio = "", Icon = "", Image = "" }, - new ChampionEntity { Id = Guid.Parse("{A4F84D92-C20F-4F2D-B3F9-CA00EF556E72}"), Name = "Aatrox", Class = ChampionClassEntity.Fighter, Bio = "", Icon = "", Image = "" }, - new ChampionEntity { Id = Guid.Parse("{AE5FE535-F041-445E-B570-28B75BC78CB9}"), Name = "Ahri", Class = ChampionClassEntity.Mage, Bio = "", Icon = "", Image = "" }, - new ChampionEntity { Id = Guid.Parse("{3708dcfd-02a1-491e-b4f7-e75bf274cf23}"), Name = "Akshan", Class = ChampionClassEntity.Marksman, Bio = "", Icon = "", Image = "" }, - new ChampionEntity { Id = Guid.Parse("{7f7746fa-b1cb-49da-9409-4b3e6910500e}"), Name = "Bard", Class = ChampionClassEntity.Support, Bio = "", Icon = "", Image = "" }, - new ChampionEntity { Id = Guid.Parse("{36ad2a82-d17b-47de-8a95-6e154a7df557}"), Name = "Alistar", Class = ChampionClassEntity.Tank, Bio = "", Icon = "", Image = "" } + new ChampionEntity { Id = Guid.Parse("{4422C524-B2CB-43EF-8263-990C3CEA7CAE}"), Name = "Akali", Class = ChampionClassEntity.Assassin, Bio = "", Icon = "", Image = new LargeImageEntity { Base64 = "empty" } }, + new ChampionEntity { Id = Guid.Parse("{A4F84D92-C20F-4F2D-B3F9-CA00EF556E72}"), Name = "Aatrox", Class = ChampionClassEntity.Fighter, Bio = "", Icon = "", Image = new LargeImageEntity { Base64 = "empty" } }, + new ChampionEntity { Id = Guid.Parse("{AE5FE535-F041-445E-B570-28B75BC78CB9}"), Name = "Ahri", Class = ChampionClassEntity.Mage, Bio = "", Icon = "", Image = new LargeImageEntity { Base64 = "empty" } }, + new ChampionEntity { Id = Guid.Parse("{3708dcfd-02a1-491e-b4f7-e75bf274cf23}"), Name = "Akshan", Class = ChampionClassEntity.Marksman, Bio = "", Icon = "", Image = new LargeImageEntity { Base64 = "empty" } }, + new ChampionEntity { Id = Guid.Parse("{7f7746fa-b1cb-49da-9409-4b3e6910500e}"), Name = "Bard", Class = ChampionClassEntity.Support, Bio = "", Icon = "", Image = new LargeImageEntity { Base64 = "empty" } }, + new ChampionEntity { Id = Guid.Parse("{36ad2a82-d17b-47de-8a95-6e154a7df557}"), Name = "Alistar", Class = ChampionClassEntity.Tank, Bio = "", Icon = "", Image = new LargeImageEntity { Base64 = "empty" } } + ); + + modelBuilder.Entity().HasData( + new SkillEntity { Name = "Boule de feu", Description = "Fire!", Type = SkillTypeEntity.Basic }, + new SkillEntity { Name = "White Star", Description = "Random damage", Type = SkillTypeEntity.Ultimate } + ); + + modelBuilder.Entity().HasData( + new LargeImageEntity { Base64 = "empty" }, + new LargeImageEntity { Base64 = "empty2" } + ); + + modelBuilder.Entity().HasData( + new SkinEntity { Name = "Yone fleur spirituelle", Description = "Spirit Blossom", Icon = "empty", Price = 975, Image = new LargeImageEntity { Base64 = "empty" } }, + new SkinEntity { Name = "Yasuo Lune de sang", Description = "Blood Moon", Icon = "empty", Price = 975, Image = new LargeImageEntity { Base64 = "empty" } } ); } diff --git a/src/EntityFramework_LoL/Sources/MyFlib/Program.cs b/src/EntityFramework_LoL/Sources/MyFlib/Program.cs index 0da5a3c..00d8f3d 100644 --- a/src/EntityFramework_LoL/Sources/MyFlib/Program.cs +++ b/src/EntityFramework_LoL/Sources/MyFlib/Program.cs @@ -1,20 +1,25 @@ // See https://aka.ms/new-console-template for more information using MyFlib; +using static System.Console; using (var context = new LolDbContext()) { foreach (var c in context.Champions) { - Console.WriteLine($"{c.Name} - {c.Class}"); + WriteLine($"{c.Name} - {c.Class}"); } - Console.WriteLine("\nWith new Champions :\n"); + WriteLine("\nWith new Champions :\n"); DataSeeder.SeedData(context); foreach (var c in context.Champions) { - Console.WriteLine($"{c.Name} - {c.Class}"); + WriteLine($"{c.Name} - {c.Class}"); + foreach (var s in c.Skills) + { + WriteLine($"\t\t{s.Name} - {s.Description}"); + } } context.SaveChangesAsync(); // or context.SaveChangesAsync diff --git a/src/EntityFramework_LoL/Sources/Tests/UT_EF/ChampionsTest.cs b/src/EntityFramework_LoL/Sources/Tests/UT_EF/ChampionsTest.cs index fd66059..ed24a8f 100644 --- a/src/EntityFramework_LoL/Sources/Tests/UT_EF/ChampionsTest.cs +++ b/src/EntityFramework_LoL/Sources/Tests/UT_EF/ChampionsTest.cs @@ -19,7 +19,11 @@ namespace UT_EF ChampionEntity hecarim = new ChampionEntity { Name = "Hecarim", Class = ChampionClassEntity.Fighter, Bio = "", Icon = "", Image = "" }; ChampionEntity yuumi = new ChampionEntity { Name = "yuumi", Class = ChampionClassEntity.Mage, Bio = "", Icon = "", Image = "" }; - context.Champions.AddRange(sylas, hecarim, yuumi); + // test contrainte + ChampionEntity errorName = new ChampionEntity { Name = "c1832f35-f909-422d-a1fb-e0b79a62f562-fa7c5fe2-89b7-432e-9e0f-a5736445b381-3f75c0f8-de2e-4cf4-82d2-3d24411f6422-6b7e9196-3664-4813-b971-e9cc08a4b255-c1832f35-f909-422d-a1fb-e0b79a62f562-fa7c5fe2-89b7-432e-9e0f-a5736445b381-3f75c0f8-de2e-4cf4-82d2-3d24411f6422-6b7e9196-3664-4813-b971-e9cc08a4b255" + , Class = ChampionClassEntity.Mage, Bio = "", Icon = "", Image = "" }; + + context.Champions.AddRange(sylas, hecarim, yuumi, errorName); context.SaveChanges(); }