From 4f9dced86f2d0239584359c7d03f04dd64d6b51c Mon Sep 17 00:00:00 2001 From: "bastien.ollier" Date: Tue, 7 Mar 2023 19:01:15 +0100 Subject: [PATCH] add debut skinManager avec les differents DTO --- .../apiLOL/Controllers/ControllerChampions.cs | 6 +-- Sources/apiLOL/Controllers/ControllerSkins.cs | 50 +++++++++++++++++++ Sources/apiLOL/DTO/ChampionDTO.cs | 4 +- Sources/apiLOL/DTO/ChampionMapper.cs | 4 +- Sources/apiLOL/DTO/ChampionPageDTO.cs | 2 +- Sources/apiLOL/DTO/SkinsDTO.cs | 22 ++++++++ Sources/apiLOL/DTO/SkinsMapper.cs | 10 ++++ Sources/apiLOL/DTO/SkinsPageDTO.cs | 13 +++++ 8 files changed, 103 insertions(+), 8 deletions(-) create mode 100644 Sources/apiLOL/Controllers/ControllerSkins.cs create mode 100644 Sources/apiLOL/DTO/SkinsDTO.cs create mode 100644 Sources/apiLOL/DTO/SkinsMapper.cs create mode 100644 Sources/apiLOL/DTO/SkinsPageDTO.cs diff --git a/Sources/apiLOL/Controllers/ControllerChampions.cs b/Sources/apiLOL/Controllers/ControllerChampions.cs index 99b5f16..92657b2 100644 --- a/Sources/apiLOL/Controllers/ControllerChampions.cs +++ b/Sources/apiLOL/Controllers/ControllerChampions.cs @@ -39,7 +39,7 @@ namespace apiLOL.Controllers var page = new ChampionPageDTO { - Data = (IEnumerable)champs, + Data = (IEnumerable)champs, Index = index, Count = count, TotalCount = nbChampions @@ -69,7 +69,7 @@ namespace apiLOL.Controllers // POST api/ [HttpPost] - public async Task Post(ChampionDTO champDTO) + public async Task Post(SkinDTO champDTO) { _logger.LogInformation($"methode Post de ControllerChampions appelée avec le paramètre {champDTO.Name}"); @@ -78,7 +78,7 @@ namespace apiLOL.Controllers { Champion tmp = champDTO.ToModel(); Champion champion = await data.ChampionsMgr.AddItem(tmp); - ChampionDTO dtoChamp = champion.ToDTO(); + SkinDTO dtoChamp = champion.ToDTO(); return CreatedAtAction(nameof(GetChampion), new { name = dtoChamp.Name }, dtoChamp); } catch (Exception ex) diff --git a/Sources/apiLOL/Controllers/ControllerSkins.cs b/Sources/apiLOL/Controllers/ControllerSkins.cs new file mode 100644 index 0000000..ee7a408 --- /dev/null +++ b/Sources/apiLOL/Controllers/ControllerSkins.cs @@ -0,0 +1,50 @@ +using Microsoft.AspNetCore.Mvc; +using Model; + +// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 + +namespace apiLOL.Controllers +{ + [Route("api/[controller]")] + [ApiController] + [ApiVersion("1.0")] + public class ControllerSkins : ControllerBase + { + private readonly IDataManager data; + // EFdata manager qui implémente l'interface IDataManager + // coté client : Refaire un APIdata manager qui implémente l'interface IDataManager + private readonly ILogger _logger; + + public ControllerSkins(IDataManager manager, ILogger log) + { + data = manager; + _logger = log; + } + + + // GET api//5 + [HttpGet("{id}")] + public string Get(int id) + { + return "value"; + } + + // POST api/ + [HttpPost] + public void Post([FromBody] string value) + { + } + + // PUT api//5 + [HttpPut("{id}")] + public void Put(int id, [FromBody] string value) + { + } + + // DELETE api//5 + [HttpDelete("{id}")] + public void Delete(int id) + { + } + } +} diff --git a/Sources/apiLOL/DTO/ChampionDTO.cs b/Sources/apiLOL/DTO/ChampionDTO.cs index 07e0ef2..f7a285b 100644 --- a/Sources/apiLOL/DTO/ChampionDTO.cs +++ b/Sources/apiLOL/DTO/ChampionDTO.cs @@ -1,9 +1,9 @@ namespace apiLOL.DTO { - public class ChampionDTO + public class SkinDTO { - public ChampionDTO(string name, string bio, string icon) + public SkinDTO(string name, string bio, string icon) { Name = name; Bio = bio; diff --git a/Sources/apiLOL/DTO/ChampionMapper.cs b/Sources/apiLOL/DTO/ChampionMapper.cs index 0c92c99..8f29ced 100644 --- a/Sources/apiLOL/DTO/ChampionMapper.cs +++ b/Sources/apiLOL/DTO/ChampionMapper.cs @@ -4,10 +4,10 @@ namespace apiLOL.DTO { public static class ChampionMapper { - public static ChampionDTO ToDTO(this Champion champion) => new ChampionDTO(champion.Name, champion.Bio, champion.Icon); + public static SkinDTO ToDTO(this Champion champion) => new SkinDTO(champion.Name, champion.Bio, champion.Icon); - public static Champion ToModel(this ChampionDTO championDTO) + public static Champion ToModel(this SkinDTO championDTO) { Champion champ = new Champion(championDTO.Name); champ.Bio = championDTO.Bio; diff --git a/Sources/apiLOL/DTO/ChampionPageDTO.cs b/Sources/apiLOL/DTO/ChampionPageDTO.cs index 4d5f71d..07d1d21 100644 --- a/Sources/apiLOL/DTO/ChampionPageDTO.cs +++ b/Sources/apiLOL/DTO/ChampionPageDTO.cs @@ -2,7 +2,7 @@ { public class ChampionPageDTO { - public IEnumerable Data { get; set; } + public IEnumerable Data { get; set; } public int Index { get; set; } diff --git a/Sources/apiLOL/DTO/SkinsDTO.cs b/Sources/apiLOL/DTO/SkinsDTO.cs new file mode 100644 index 0000000..d912439 --- /dev/null +++ b/Sources/apiLOL/DTO/SkinsDTO.cs @@ -0,0 +1,22 @@ +using Model; + +namespace apiLOL.DTO +{ + public class SkinsDTO + { + public SkinsDTO(string name, Champion champion, float price = 0.0f, string icon = "", string image = "", string description = "") + { + Name = name; + Champ = champion; + Price = price; + Icon = icon; + Description = description; + } + + public string Name { get; set; } + public Champion Champ { get; set; } + public float Price { get; } + public string Icon { get; } + public string Description { get; } + } +} diff --git a/Sources/apiLOL/DTO/SkinsMapper.cs b/Sources/apiLOL/DTO/SkinsMapper.cs new file mode 100644 index 0000000..2050fff --- /dev/null +++ b/Sources/apiLOL/DTO/SkinsMapper.cs @@ -0,0 +1,10 @@ +using Model; + +namespace apiLOL.DTO +{ + public static class SkinsMapper + { + public static SkinsDTO ToDTO(this Skin skin) => new SkinsDTO(skin.Name, skin.Champion, skin.Price, skin.Icon, skin.Description); + public static Skin ToModel(this SkinsDTO skinDTO) => new Skin(skinDTO.Name, skinDTO.Champ, skinDTO.Price, skinDTO.Icon, "",skinDTO.Description); + } +} diff --git a/Sources/apiLOL/DTO/SkinsPageDTO.cs b/Sources/apiLOL/DTO/SkinsPageDTO.cs new file mode 100644 index 0000000..aa77e19 --- /dev/null +++ b/Sources/apiLOL/DTO/SkinsPageDTO.cs @@ -0,0 +1,13 @@ +namespace apiLOL.DTO +{ + public class SkinsPageDTO + { + public IEnumerable Data { get; set; } + + public int Index { get; set; } + + public int Count { get; set; } + + public int TotalCount { get; set; } + } +}