From 3c63be52d412e31c0e6d41608f148e067d79772e Mon Sep 17 00:00:00 2001 From: Louis DUFOUR Date: Sat, 25 Mar 2023 19:36:32 +0100 Subject: [PATCH] =?UTF-8?q?Update=20API=20&=20sch=C3=A9ma?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Documentation/Architecture_du_projet.drawio | 2 +- Sources/API/Controllers/ChampionController.cs | 94 ++++++++++-------- Sources/API/Controllers/SkinController.cs | 46 ++++++++- Sources/API/Dto/ChampionDto.cs | 4 +- Sources/API/Dto/SkinDto.cs | 2 +- Sources/API/Mapping/ChampionMapper.cs | 4 +- Sources/API/Mapping/SkinMapper.cs | 4 +- Sources/API/Program.cs | 6 +- Sources/API/projet.dbloulou.db | Bin 0 -> 73728 bytes Sources/API/projet.dbloulou.db-shm | Bin 0 -> 32768 bytes Sources/API/projet.dbloulou.db-wal | 0 .../EFManager/ManagerChampion.cs | 52 +++++----- .../EntityFramework/EFManager/ManagerData.cs | 13 +-- .../EntityFramework/EFManager/ManagerSkin.cs | 36 +++---- Sources/EntityFramework/EFlib/EFRune.cs | 2 +- Sources/EntityFramework/EFlib/EFRunePage.cs | 1 + Sources/Model/IDataManager.cs | 2 +- 17 files changed, 162 insertions(+), 106 deletions(-) create mode 100644 Sources/API/projet.dbloulou.db create mode 100644 Sources/API/projet.dbloulou.db-shm create mode 100644 Sources/API/projet.dbloulou.db-wal diff --git a/Documentation/Architecture_du_projet.drawio b/Documentation/Architecture_du_projet.drawio index 69bd778..87ffdf0 100644 --- a/Documentation/Architecture_du_projet.drawio +++ b/Documentation/Architecture_du_projet.drawio @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/Sources/API/Controllers/ChampionController.cs b/Sources/API/Controllers/ChampionController.cs index 87816ba..9d55a02 100644 --- a/Sources/API/Controllers/ChampionController.cs +++ b/Sources/API/Controllers/ChampionController.cs @@ -1,25 +1,27 @@ using API.Dto; using API.Mapping; +using EFManager; using Microsoft.AspNetCore.Mvc; using Model; using StubLib; + namespace API.Controllers { [ApiController] [Route("[controller]")] public class ChampionController : ControllerBase { - private readonly StubData data = new StubData(); - - // Pour plus tard pour le momment c'est avec le stub - // private readonly IDataManager dataManager; + // private readonly ManagerData data; + private readonly StubData data; private readonly ILogger _logger; - public ChampionController(ILogger logger) + + public ChampionController(StubData manager, ILogger logger) { - _logger = logger; + data = manager; + _logger = logger; } /* @@ -59,52 +61,57 @@ namespace API.Controllers List DtoChamps = new List(); // Chargement de la liste des champions Dto à partir des champions - Champs.ToList().ForEach(c => DtoChamps.Add(c.ToDto())); + Champs.ToList().ForEach(Champ => DtoChamps.Add(Champ.ToDto())); return Ok(DtoChamps); } - [HttpGet] - [Route("{Name}")] - public async Task> GetChampById(int id) + [HttpGet("count")] + public async Task GetCount() { - // Récupération de la liste des champions - IEnumerable Champs = await data.ChampionsMgr.GetItems(id, 1); - - // Récupération du champion correspondant à l'id - if (id >= 0 && id < data.ChampionsMgr.GetNbItems().Result) + try + { + // Renvoie le nombre de champion + return Ok(data.ChampionsMgr.GetNbItems()); + } + catch (Exception e) { - return Ok(Champs.First().ToDto()); + return BadRequest(e.Message); } - return BadRequest("404"); } - [HttpGet("{Name}/Skins")] - public async Task> GetSkinsChamp(string name) + + [HttpGet("{name}")] + public async Task> GetChampByName(string name) { - // Récupération de la liste des champions - IEnumerable Champs = await data.ChampionsMgr.GetItemsByName(name, await data.ChampionsMgr.GetNbItemsByName(name), 1); + try + { + // Récupération de la liste des champions + IEnumerable champion = await data.ChampionsMgr.GetItemsByName(name, 0, data.ChampionsMgr.GetNbItems().Result); + + // Enregistrement des log + _logger.LogInformation("Executing {Action} with name : {championName}", nameof(GetChampByName), name); + + // Création du champion Dto + ChampionDto resultat = champion.First().ToDto(); + + // Vérification de sa véraciter + if (resultat == null) + { + _logger.LogWarning("No chamions found with {name}", name); ; + return NotFound(); + } + return Ok(resultat); - // Récupération du champion correspondant à l'id - //if (await data.ChampionsMgr.GetNbItemsByName(name).Result) + } + catch (Exception e) { - // Converstion en Champion au lieu de champion IEnumerable - Champion champion = Champs.First(); - - // Récupération des skin du champion - IEnumerable Skins = await data.SkinsMgr.GetItemsByChampion(champion, 0, data.SkinsMgr.GetNbItemsByChampion(champion).Result); + return BadRequest(e.Message); + } + } - // Création de la liste de skin - List skins = new List(); - // Ajout des skins dans la nouvelle liste - Skins.ToList().ForEach(Skin => skins.Add(Skin.ToDto())); - return Ok(skins); - } - return BadRequest(); - } - /**** Méthodes POST ****/ [HttpPost("Ajouter/{nom}")] public async Task PostChampName(string nom) @@ -115,7 +122,7 @@ namespace API.Controllers // Ajout du champion dans la BD await data.ChampionsMgr.AddItem(champion); - return CreatedAtAction(nameof(GetChampById), new { id = data.ChampionsMgr.GetNbItems().Result - 1 }, champion.ToDto()); + return CreatedAtAction(nameof(GetChampByName), new { Id = data.ChampionsMgr.GetNbItemsByName(nom) }, champion.ToDto()); } [HttpPost("Ajouter")] @@ -133,8 +140,7 @@ namespace API.Controllers [HttpPost] public async Task post([FromBody] ChampionDto championDto) { - return CreatedAtAction(nameof(GetChampById), new { id = 1 }, - await data.ChampionsMgr.AddItem(championDto.ToModel())); + return CreatedAtAction(nameof(GetChampByName), new { id = 1 }, await data.ChampionsMgr.AddItem(championDto.ToModel())); } /**** Méthodes DELETE ****/ @@ -154,7 +160,7 @@ namespace API.Controllers } - /**** Méthodes PUT ****/ + /**** Méthodes PUT **** [HttpPut("Modifier/{nom}")] public async Task PutChampName(string nom) @@ -166,13 +172,13 @@ namespace API.Controllers return CreatedAtAction(nameof(GetChampById), new { id = data.ChampionsMgr.GetNbItems().Result - 1 }, champion.ToDto()); } - /*[HttpPut("Modifier")] + [HttpPut("Modifier")] public async Task PutChamp([FromBody] ChampionDto championDto) { Champion champion = championDto.ToModel(); await data.ChampionsMgr.UpdateItem(champion); return CreatedAtAction(nameof(GetChampById), new { id = data.ChampionsMgr.GetItems(0, data.ChampionsMgr.GetNbItems().Result).Result.ToList().IndexOf(champion) }, champion); - }*/ - + } + */ } } diff --git a/Sources/API/Controllers/SkinController.cs b/Sources/API/Controllers/SkinController.cs index 3f7f919..1051bbf 100644 --- a/Sources/API/Controllers/SkinController.cs +++ b/Sources/API/Controllers/SkinController.cs @@ -1,6 +1,50 @@ -namespace API.Controllers +using API.Dto; +using EFManager; +using Microsoft.AspNetCore.Mvc; +using Model; + +namespace API.Controllers { + [ApiController] + [Route("[controller]")] public class SkinController { + + private readonly ManagerData data; + + private readonly ILogger _logger; + + public SkinController(ManagerData manager, ILogger logger) + { + data = manager; + _logger = logger; + } + + /* + [HttpGet("{Name}/Skins")] + public async Task> GetSkinsChamp(string name) + { + // Récupération de la liste des champions + IEnumerable Champs = await data.ChampionsMgr.GetItemsByName(name, await data.ChampionsMgr.GetNbItemsByName(name), 1); + + // Récupération du champion correspondant à l'id + //if (await data.ChampionsMgr.GetNbItemsByName(name).Result) + { + // Converstion en Champion au lieu de champion IEnumerable + Champion champion = Champs.First(); + + // Récupération des skin du champion + IEnumerable Skins = await data.SkinsMgr.GetItemsByChampion(champion, 0, data.SkinsMgr.GetNbItemsByChampion(champion).Result); + + // Création de la liste de skin + List skins = new List(); + + // Ajout des skins dans la nouvelle liste + Skins.ToList().ForEach(Skin => skins.Add(Skin.ToDto())); + + return Ok(skins); + } + return BadRequest(); + }*/ } } diff --git a/Sources/API/Dto/ChampionDto.cs b/Sources/API/Dto/ChampionDto.cs index a3068a2..ee59d50 100644 --- a/Sources/API/Dto/ChampionDto.cs +++ b/Sources/API/Dto/ChampionDto.cs @@ -17,8 +17,8 @@ namespace API.Dto public IEnumerable ValueCharac { get; set; } public ChampionClass Class { get; set; } - public ReadOnlyCollection Skins { get; set; } - public ImmutableHashSet Skills { get; set; } + public IEnumerable Skins { get; set; } + public IEnumerable Skills { get; set; } public LargeImage Image { get; set; } } diff --git a/Sources/API/Dto/SkinDto.cs b/Sources/API/Dto/SkinDto.cs index f4ebc41..e2df2ed 100644 --- a/Sources/API/Dto/SkinDto.cs +++ b/Sources/API/Dto/SkinDto.cs @@ -5,7 +5,7 @@ namespace API.Dto public class SkinDto { public string Name { get; set; } - public ChampionDto Champion { get; set; } + public string ChampionName { get; set; } public string Description { get; set; } public float Price { get; set; } public string Icon { get; set; } diff --git a/Sources/API/Mapping/ChampionMapper.cs b/Sources/API/Mapping/ChampionMapper.cs index 99d8fc9..4318234 100644 --- a/Sources/API/Mapping/ChampionMapper.cs +++ b/Sources/API/Mapping/ChampionMapper.cs @@ -24,8 +24,8 @@ namespace API.Mapping ValueCharac = champion.Characteristics.Values, Class = champion.Class, - Skins = (ReadOnlyCollection)champion.Skins.Select(skin => skin.ToDto()), - Skills = (ImmutableHashSet)champion.Skills.Select(skill => skill.ToDto()), + Skins = champion.Skins.Select(skin => skin.ToDto()), + Skills = champion.Skills.Select(skill => skill.ToDto()), Image = champion.Image }; } diff --git a/Sources/API/Mapping/SkinMapper.cs b/Sources/API/Mapping/SkinMapper.cs index e8889d2..225d750 100644 --- a/Sources/API/Mapping/SkinMapper.cs +++ b/Sources/API/Mapping/SkinMapper.cs @@ -16,7 +16,7 @@ namespace API.Mapping return new SkinDto() { Name = skin.Name, - Champion = skin.Champion.ToDto(), + ChampionName = skin.Champion.Name, Description = skin.Description, Price = skin.Price, Icon = skin.Icon, @@ -30,7 +30,7 @@ namespace API.Mapping { throw new ArgumentNullException("DtoSkin null"); } - return new Skin(skinDto.Name, skinDto.Champion.ToModel(), skinDto.Price, skinDto.Icon, skinDto.Image.Base64, skinDto.Description); + return new Skin(skinDto.Name, new Champion(skinDto.Name), skinDto.Price, skinDto.Icon, skinDto.Image.Base64, skinDto.Description); } } } diff --git a/Sources/API/Program.cs b/Sources/API/Program.cs index d98a361..8722358 100644 --- a/Sources/API/Program.cs +++ b/Sources/API/Program.cs @@ -2,6 +2,7 @@ using EFlib; using EFManager; using Microsoft.EntityFrameworkCore; using Model; +using StubLib; var builder = WebApplication.CreateBuilder(args); @@ -13,7 +14,10 @@ builder.Services.AddControllers(); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); -builder.Services.AddSingleton(); +builder.Services.AddSingleton(); + +builder.Services.AddScoped(); +// builder.Services.AddScoped(); var app = builder.Build(); diff --git a/Sources/API/projet.dbloulou.db b/Sources/API/projet.dbloulou.db new file mode 100644 index 0000000000000000000000000000000000000000..b31a1b12850eae1631c47303565767ba592b5ac1 GIT binary patch literal 73728 zcmeI%O>g5w7{GBmo5pS0H0@rja*5?0AnHPhpm0E|B~9H`)R1=5EOakK-Zbn+q%R~{ zi4~`mqVgG#_!LOo`ATqs8)G|mJ$BsgN*s{&kCZg=*faC|p2y=_K6=s|O!~$*=c7}5 zVtk~mDVdD&xnU@Zk`eFw;_bhd#h0xAL;O`k-;=&(ln=V^6pDW<>)EPOEEWG)eYE=L z%CD;{`F~cvUi>Zpd+x`@pK}`v*V(_azldFUA%MXDS>VOGrhlrd)575Fr2l>6xO?>N z;B4G&*{A*bOZ)UF#bC@0sB~%<@-jIsJWI zeJzjEIJIB&8z=5D>j^{5_KEcFZ!J&Pi<-V)QK#E}*Vdjtb!$)bJRCYf4TocALb0~B z*r>5xLWg^ki0$EodozYvo)%ZdoVG%95;Gdvy-9yG7*7U08935bjLj&rgOnX_Mv*<@ z{4WcdzFktMOFoh~!p-iuJCh7Htj-%>-ZvQ3+w2S%$g+eX<9dRQpg+PZqiTYjaY(Uaq59yO`LlECMGdQ3*K=owj#oP}Ja@(L(ho(k74jz^(Jy z+GCdI=Oor=s6yoKA~}*9%TlI-wzsd5_=d33pPY)M!`jf4sJVmEfjci!D94=^j zsigk&uAd`s)L{5rEHA;d-ux;N^fvcOu`@VNSO{*pLez)$c$}O-f2q84{Sa4xV0PWm zQtDrV|JyaVn#<`{>6UDHxLqet-dAn<;XO^?*ibJ&^RL}v>GDqDtel(Rynge<_=n6n zL+-wQcV1u2IfX<`Ze?@&qm85}y)nDarA9=uFfFN?zPYJhF1Yc9QV{x@ks}SY+^h_Z zlSmas*9GaQIT7#J-MVY-e(MV>2n7P_Nx;=*K;Ai?Qh3W)z%{HRppD0tg_0 z00IagfB*srAbCZ6{B7gt_2q1s}0tg_0 z00Iag!2LfpfB*srAb7u^|4)C8i4Xw<5I_I{1Q0*~0R#|000Hj* ZsR0BKKmY**5I_I{1Q0*~0R+-7@GnU+oOl2L literal 0 HcmV?d00001 diff --git a/Sources/API/projet.dbloulou.db-shm b/Sources/API/projet.dbloulou.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..fe9ac2845eca6fe6da8a63cd096d9cf9e24ece10 GIT binary patch literal 32768 zcmeIuAr62r3 UpdateItem(Champion? oldItem, Champion? newItem) + { + var toUpdate = parent.DbContext.Champions.Find(oldItem.Name); + try + { + toUpdate = newItem.ToEF(parent.DbContext); + parent.DbContext.SaveChanges(); + } + catch(DbUpdateException) { } + return newItem; + } + public async Task> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false) { if (orderingPropertyName != null) @@ -64,16 +76,9 @@ namespace EFManager } } - public Task> GetItemsByCharacteristic(string charName, int index, int count, string? orderingPropertyName = null, bool descending = false) - { - throw new NotImplementedException(); - - } - - public Task> GetItemsByClass(ChampionClass championClass, int index, int count, string? orderingPropertyName = null, bool descending = false) + public async Task GetNbItems() { - throw new NotImplementedException(); - + return parent.DbContext.Champions.Count(); } public async Task> GetItemsByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) @@ -97,27 +102,34 @@ namespace EFManager } } - public Task> GetItemsByRunePage(RunePage? runePage, int index, int count, string? orderingPropertyName = null, bool descending = false) + public Task> GetItemsByCharacteristic(string charName, int index, int count, string? orderingPropertyName = null, bool descending = false) { throw new NotImplementedException(); } - public Task> GetItemsBySkill(Skill? skill, int index, int count, string? orderingPropertyName = null, bool descending = false) + public Task> GetItemsByClass(ChampionClass championClass, int index, int count, string? orderingPropertyName = null, bool descending = false) { throw new NotImplementedException(); + } - public Task> GetItemsBySkill(string skill, int index, int count, string? orderingPropertyName = null, bool descending = false) + + public Task> GetItemsByRunePage(RunePage? runePage, int index, int count, string? orderingPropertyName = null, bool descending = false) { throw new NotImplementedException(); + } - public async Task GetNbItems() + public Task> GetItemsBySkill(Skill? skill, int index, int count, string? orderingPropertyName = null, bool descending = false) { - return parent.DbContext.Champions.Count(); + throw new NotImplementedException(); } + public Task> GetItemsBySkill(string skill, int index, int count, string? orderingPropertyName = null, bool descending = false) + { + throw new NotImplementedException(); + } public async Task GetNbItemsByCharacteristic(string charName) { throw new NotImplementedException(); @@ -147,18 +159,6 @@ namespace EFManager { throw new NotImplementedException(); } - - public async Task UpdateItem(Champion? oldItem, Champion? newItem) - { - var toUpdate = parent.DbContext.Champions.Find(oldItem.Name); - try - { - toUpdate = newItem.ToEF(parent.DbContext); - parent.DbContext.SaveChanges(); - } - catch(DbUpdateException) { } - return newItem; - } } } } \ No newline at end of file diff --git a/Sources/EntityFramework/EFManager/ManagerData.cs b/Sources/EntityFramework/EFManager/ManagerData.cs index 6550534..d6e66c1 100644 --- a/Sources/EntityFramework/EFManager/ManagerData.cs +++ b/Sources/EntityFramework/EFManager/ManagerData.cs @@ -11,12 +11,6 @@ namespace EFManager { public partial class ManagerData : IDataManager { - public ManagerData(SQLiteContext ContextData) - { - DbContext = ContextData; - ChampionsMgr = new ManagerChampion(this); - SkinsMgr = new ManagerSkin(this); - } protected SQLiteContext DbContext { get; } public IChampionsManager ChampionsMgr { get; } @@ -26,5 +20,12 @@ namespace EFManager public IRunesManager RunesMgr { get; } public IRunePagesManager RunePagesMgr { get; } + + public ManagerData(SQLiteContext ContextData) + { + DbContext = ContextData; + ChampionsMgr = new ManagerChampion(this); + SkinsMgr = new ManagerSkin(this); + } } } diff --git a/Sources/EntityFramework/EFManager/ManagerSkin.cs b/Sources/EntityFramework/EFManager/ManagerSkin.cs index ec672c9..b9f4b91 100644 --- a/Sources/EntityFramework/EFManager/ManagerSkin.cs +++ b/Sources/EntityFramework/EFManager/ManagerSkin.cs @@ -48,6 +48,19 @@ namespace EFManager } } + public async Task UpdateItem(Skin? oldItem, Skin? newItem) + { + var toUpdate = parent.DbContext.Skins.Find(oldItem.Name); + try + { + toUpdate.Champion = parent.DbContext.Champions.Find(newItem.Champion.Name); + parent.DbContext.SaveChanges(); + } + catch (DbUpdateException) { } + return newItem; + + } + public async Task> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false) { if (orderingPropertyName != null) @@ -67,19 +80,19 @@ namespace EFManager } } - public Task> GetItemsByChampion(Champion? champion, int index, int count, string? orderingPropertyName = null, bool descending = false) + public async Task GetNbItems() { - throw new NotImplementedException(); + return parent.DbContext.Skins.Count(); } - public Task> GetItemsByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) + public Task> GetItemsByChampion(Champion? champion, int index, int count, string? orderingPropertyName = null, bool descending = false) { throw new NotImplementedException(); } - public async Task GetNbItems() + public Task> GetItemsByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false) { - return parent.DbContext.Skins.Count(); + throw new NotImplementedException(); } public Task GetNbItemsByChampion(Champion? champion) @@ -91,19 +104,6 @@ namespace EFManager { throw new NotImplementedException(); } - - public async Task UpdateItem(Skin? oldItem, Skin? newItem) - { - var toUpdate = parent.DbContext.Skins.Find(oldItem.Name); - try - { - toUpdate.Champion = parent.DbContext.Champions.Find(newItem.Champion.Name); - parent.DbContext.SaveChanges(); - } - catch (DbUpdateException) { } - return newItem; - - } } } } diff --git a/Sources/EntityFramework/EFlib/EFRune.cs b/Sources/EntityFramework/EFlib/EFRune.cs index b220906..b7d3f79 100644 --- a/Sources/EntityFramework/EFlib/EFRune.cs +++ b/Sources/EntityFramework/EFlib/EFRune.cs @@ -12,6 +12,6 @@ namespace EFlib { public class EFRune { - + // TODO } } diff --git a/Sources/EntityFramework/EFlib/EFRunePage.cs b/Sources/EntityFramework/EFlib/EFRunePage.cs index 81de5cd..34d9c44 100644 --- a/Sources/EntityFramework/EFlib/EFRunePage.cs +++ b/Sources/EntityFramework/EFlib/EFRunePage.cs @@ -13,5 +13,6 @@ namespace EFlib { public class EFRunePage { + // TODO } } diff --git a/Sources/Model/IDataManager.cs b/Sources/Model/IDataManager.cs index a185e15..44f03af 100644 --- a/Sources/Model/IDataManager.cs +++ b/Sources/Model/IDataManager.cs @@ -27,7 +27,7 @@ namespace Model Task GetNbItemsBySkill(string skill); Task> GetItemsBySkill(string skill, int index, int count, string? orderingPropertyName = null, bool descending = false); - } + } public interface ISkinsManager : IGenericDataManager {