using Api_lol.Factories; using DTO; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Model; using StubLib; using System.Xml.Linq; namespace Api_lol.Controllers { [ApiController] [Route("/Champions")] public class Champions : Controller { private readonly IDataManager data; private readonly ILogger logger; public Champions(ILogger logger,IDataManager manager) { this.logger = logger; data = manager; } [HttpGet] public async Task Get() { var champs = (await data.ChampionsMgr.GetItems(0, await data.ChampionsMgr.GetNbItems())).Select(Model => Model.ModelToDto()); return Ok(champs); } [HttpPost] public async Task Post(DtoChampions champDTO) { Champion tmp = champDTO.DtoToModel(); Champion champion = await data.ChampionsMgr.AddItem(tmp); DtoChampions dtoChamp = champion.ModelToDto(); Console.WriteLine(champion.Name); return CreatedAtAction(nameof(GetChampion),new { name = dtoChamp.name},dtoChamp); } [HttpGet] [Route("{name}")] public async Task GetChampion(string name) { Champion champion = (await data.ChampionsMgr.GetItems(0, await data.ChampionsMgr.GetNbItems())).First(i => i.Name == name); if ( champion == null) { return BadRequest(); } DtoChampions result = champion.ModelToDto(); return Ok(result); } } }