From eb4fb9c92fd38a8db0d65a653d356b560ae3cb7d Mon Sep 17 00:00:00 2001 From: Jolys Enzo Date: Wed, 15 Mar 2023 15:30:02 +0100 Subject: [PATCH] avancement --- Sources/Api-lol/Factories/FactoChampions.cs | 25 ++++++++- Sources/DTO/DtoChampions.cs | 2 + Sources/EntityFramwork/EntityChampions.cs | 2 +- Sources/EntityFramwork/Factories/Factories.cs | 49 +++++++++++++++-- .../EntityFramwork/Manager/ManagerChampion.cs | 54 +++++++++++++++---- .../EntityFramwork/Manager/ManagerSkins.cs | 45 +++++++++++++++- Sources/RelationApi/Relation.cs | 11 ++-- Sources/RelationApi/RelationApi.csproj | 4 ++ Sources/RelationApi/RelationChampion.cs | 14 ++++- Sources/RelationApi/RelationRune.cs | 9 ++++ Sources/RelationApi/RelationRunePage.cs | 9 ++++ Sources/RelationApi/RelationSkins.cs | 9 ++++ 12 files changed, 210 insertions(+), 23 deletions(-) diff --git a/Sources/Api-lol/Factories/FactoChampions.cs b/Sources/Api-lol/Factories/FactoChampions.cs index 6a997f9..24f1caa 100644 --- a/Sources/Api-lol/Factories/FactoChampions.cs +++ b/Sources/Api-lol/Factories/FactoChampions.cs @@ -8,7 +8,30 @@ namespace Api_lol.Factories { public static Champion DtoToModel(this DtoChampions champDto) { - return new Champion(champDto.name); + ChampionClass classe = ChampionClass.Unknown; + switch (champDto.classe) + { + case "Assassin": + classe = ChampionClass.Assassin; + break; + + case "Fighter": + classe = ChampionClass.Fighter; + break; + + case "Mage": + classe = ChampionClass.Mage; + break; + + case "Support": + classe = ChampionClass.Support; + break; + + case "Tank": + classe = ChampionClass.Tank; + break; + } + return new Champion(champDto.name,champClass:classe,icon:champDto.icon,bio:champDto.bio,image:champDto.image); } public static DtoChampions ModelToDto(this Champion champ) diff --git a/Sources/DTO/DtoChampions.cs b/Sources/DTO/DtoChampions.cs index 7c3f0ab..94df7ba 100644 --- a/Sources/DTO/DtoChampions.cs +++ b/Sources/DTO/DtoChampions.cs @@ -14,5 +14,7 @@ namespace DTO public string bio { get; set; } public string icon { get; set; } + + public string image { get; set; } } } diff --git a/Sources/EntityFramwork/EntityChampions.cs b/Sources/EntityFramwork/EntityChampions.cs index 98a83c6..2270ba4 100644 --- a/Sources/EntityFramwork/EntityChampions.cs +++ b/Sources/EntityFramwork/EntityChampions.cs @@ -6,7 +6,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace DTO +namespace EntityFramwork { public class EntityChampions { diff --git a/Sources/EntityFramwork/Factories/Factories.cs b/Sources/EntityFramwork/Factories/Factories.cs index d69d63d..a8b1a02 100644 --- a/Sources/EntityFramwork/Factories/Factories.cs +++ b/Sources/EntityFramwork/Factories/Factories.cs @@ -1,11 +1,15 @@ using DTO; using Model; +using static System.Net.Mime.MediaTypeNames; +using System.Threading.Tasks; namespace EntityFramwork.Factories { - public class Factories + public static class Factories { - public EntityChampions ChampionModelToEntity(Champion champ) + + // Factorie Champion + public static EntityChampions ChampionModelToEntity(this Champion champ) { EntityChampions entity = new EntityChampions(); @@ -17,7 +21,42 @@ namespace EntityFramwork.Factories return entity; } - public EntitySkins SkinsModelToEntity(Skin skin,int id) + public static Champion EntityChampionToModele(this EntityChampions entity) + { + ChampionClass classe = ChampionClass.Unknown; + + switch (entity.Classe) + { + case "Assassin": + classe = ChampionClass.Assassin; + break; + + case "Fighter": + classe = ChampionClass.Fighter; + break; + + case "Mage": + classe = ChampionClass.Mage; + break; + + case "Support": + classe = ChampionClass.Support; + break; + + case "Tank": + classe = ChampionClass.Tank; + break; + } + + // Attention l'image !! + return new Champion(entity.Name,champClass:classe,icon:entity.Icon,bio:entity.Bio); + } + + public + + + // Skins + public static EntitySkins SkinsModelToEntity(this Skin skin,int id) { EntitySkins entity= new EntitySkins(); @@ -31,7 +70,7 @@ namespace EntityFramwork.Factories } - public EntityRunes RuneModelToEntity(Rune rune) + public static EntityRunes RuneModelToEntity(this Rune rune) { EntityRunes entity = new EntityRunes(); @@ -43,7 +82,7 @@ namespace EntityFramwork.Factories return entity; } - public EntitySkill SkillModeleToEntity(Skill skill,int championId) + public static EntitySkill SkillModeleToEntity(this Skill skill,int championId) { EntitySkill entity = new EntitySkill(); diff --git a/Sources/EntityFramwork/Manager/ManagerChampion.cs b/Sources/EntityFramwork/Manager/ManagerChampion.cs index 4a80248..7b5843d 100644 --- a/Sources/EntityFramwork/Manager/ManagerChampion.cs +++ b/Sources/EntityFramwork/Manager/ManagerChampion.cs @@ -1,27 +1,63 @@ -using Model; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using EntityFramwork.Factories; +using Model; namespace EntityFramwork.Manager { public class ManagerChampion : IChampionsManager { + public Task AddItem(Champion? item) { - throw new NotImplementedException(); + try + { + using (BDDContext db = new BDDContext()) + { + db.Champions.Add(item.ChampionModelToEntity()); + db.SaveChanges(); + } + } + catch (Exception ex) + { + return Task.FromResult(null); + } + return Task.FromResult(item); } public Task DeleteItem(Champion? item) { - throw new NotImplementedException(); + if(item == null) + { + return Task.FromResult(false); + } + using (BDDContext db = new BDDContext()) + { + EntityChampions ?entityChamp = db.Champions.Where(e => e.Name == item.Name).FirstOrDefault(); + if ( entityChamp == null) + { + return Task.FromResult(false); + } + db.Champions.Remove(entityChamp); + db.SaveChanges(); + } + return Task.FromResult(true); } public Task> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false) { - throw new NotImplementedException(); + IEnumerable items = new List(); + + using (BDDContext db = new BDDContext()) + { + if ( descending == false) + { + items = db.Champions.Skip(index).Take(count).OrderBy(e => e.Name).Select(e => e.EntityChampionToModele()); + } + else + { + items = db.Champions.Skip(index).Take(count).OrderByDescending(e => e.Name).Select(e => e.EntityChampionToModele()); + } + } + return Task.FromResult>(items); } public Task> GetItemsByCharacteristic(string charName, int index, int count, string? orderingPropertyName = null, bool descending = false) diff --git a/Sources/EntityFramwork/Manager/ManagerSkins.cs b/Sources/EntityFramwork/Manager/ManagerSkins.cs index 992c674..507d232 100644 --- a/Sources/EntityFramwork/Manager/ManagerSkins.cs +++ b/Sources/EntityFramwork/Manager/ManagerSkins.cs @@ -9,6 +9,49 @@ namespace EntityFramwork.Manager { public class ManagerSkins : ISkinsManager { - + public Task AddItem(Skin? item) + { + throw new NotImplementedException(); + } + + public Task DeleteItem(Skin? item) + { + throw new NotImplementedException(); + } + + public Task> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false) + { + throw new NotImplementedException(); + } + + public Task> GetItemsByChampion(Champion? champion, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + throw new NotImplementedException(); + } + + public Task> GetItemsByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + throw new NotImplementedException(); + } + + public Task GetNbItems() + { + throw new NotImplementedException(); + } + + public Task GetNbItemsByChampion(Champion? champion) + { + throw new NotImplementedException(); + } + + public Task GetNbItemsByName(string substring) + { + throw new NotImplementedException(); + } + + public Task UpdateItem(Skin? oldItem, Skin? newItem) + { + throw new NotImplementedException(); + } } } diff --git a/Sources/RelationApi/Relation.cs b/Sources/RelationApi/Relation.cs index b8529da..a7bfce4 100644 --- a/Sources/RelationApi/Relation.cs +++ b/Sources/RelationApi/Relation.cs @@ -6,12 +6,15 @@ namespace RelationApi public class Relation : IDataManager { + private readonly string ipApi = "https://localhost:7081/"; + static HttpClient http = new HttpClient(); + public Relation() { - ChampionsMgr = new RelationChampion(); - SkinsMgr = new RelationSkins(); - RunesMgr = new RelationRune(); - RunePagesMgr = new RelationRunePage(); + ChampionsMgr = new RelationChampion(ipApi,http); + SkinsMgr = new RelationSkins(ipApi,http); + RunesMgr = new RelationRune(ipApi,http); + RunePagesMgr = new RelationRunePage(ipApi,http); } public IChampionsManager ChampionsMgr { get; } diff --git a/Sources/RelationApi/RelationApi.csproj b/Sources/RelationApi/RelationApi.csproj index 27ac386..27c4aad 100644 --- a/Sources/RelationApi/RelationApi.csproj +++ b/Sources/RelationApi/RelationApi.csproj @@ -6,4 +6,8 @@ enable + + + + diff --git a/Sources/RelationApi/RelationChampion.cs b/Sources/RelationApi/RelationChampion.cs index f981aef..0ce91d6 100644 --- a/Sources/RelationApi/RelationChampion.cs +++ b/Sources/RelationApi/RelationChampion.cs @@ -2,17 +2,27 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Net.Http.Json; using System.Text; using System.Threading.Tasks; +using static System.Net.WebRequestMethods; namespace RelationApi { public class RelationChampion : IChampionsManager { + private readonly string IpApi; + private readonly HttpClient _httpClient; - public Task AddItem(Champion? item) + public RelationChampion(string ipApi,HttpClient http) { - throw new NotImplementedException(); + IpApi = ipApi; + _httpClient = http; + } + + public async Task AddItem(Champion? item) + { + HttpResponseMessage response = await _httpClient.PostAsJsonAsync(); } public Task DeleteItem(Champion? item) diff --git a/Sources/RelationApi/RelationRune.cs b/Sources/RelationApi/RelationRune.cs index 494bc99..93b6547 100644 --- a/Sources/RelationApi/RelationRune.cs +++ b/Sources/RelationApi/RelationRune.cs @@ -9,6 +9,15 @@ namespace RelationApi { public class RelationRune : IRunesManager { + private readonly string IpApi; + private readonly HttpClient _httpClient; + + public RelationRune(string ipApi, HttpClient http) + { + IpApi = ipApi; + _httpClient = http; + } + public Task AddItem(Model.Rune? item) { throw new NotImplementedException(); diff --git a/Sources/RelationApi/RelationRunePage.cs b/Sources/RelationApi/RelationRunePage.cs index 34cd254..39d773b 100644 --- a/Sources/RelationApi/RelationRunePage.cs +++ b/Sources/RelationApi/RelationRunePage.cs @@ -9,6 +9,15 @@ namespace RelationApi { internal class RelationRunePage : IRunePagesManager { + private readonly string IpApi; + private readonly HttpClient _httpClient; + + public RelationRunePage(string ipApi, HttpClient http) + { + IpApi = ipApi; + _httpClient = http; + } + public Task AddItem(RunePage? item) { throw new NotImplementedException(); diff --git a/Sources/RelationApi/RelationSkins.cs b/Sources/RelationApi/RelationSkins.cs index fba8d73..f799c91 100644 --- a/Sources/RelationApi/RelationSkins.cs +++ b/Sources/RelationApi/RelationSkins.cs @@ -9,6 +9,15 @@ namespace RelationApi { public class RelationSkins : ISkinsManager { + private readonly string IpApi; + private readonly HttpClient _httpClient; + + public RelationSkins(string ipApi, HttpClient http) + { + IpApi = ipApi; + _httpClient = http; + } + public Task AddItem(Skin? item) { throw new NotImplementedException();