|
|
@ -1,25 +1,27 @@
|
|
|
|
using API.Dto;
|
|
|
|
using API.Dto;
|
|
|
|
using API.Mapping;
|
|
|
|
using API.Mapping;
|
|
|
|
|
|
|
|
using EFManager;
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
using Model;
|
|
|
|
using Model;
|
|
|
|
using StubLib;
|
|
|
|
using StubLib;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace API.Controllers
|
|
|
|
namespace API.Controllers
|
|
|
|
{
|
|
|
|
{
|
|
|
|
[ApiController]
|
|
|
|
[ApiController]
|
|
|
|
[Route("[controller]")]
|
|
|
|
[Route("[controller]")]
|
|
|
|
public class ChampionController : ControllerBase
|
|
|
|
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<ChampionController> _logger;
|
|
|
|
private readonly ILogger<ChampionController> _logger;
|
|
|
|
|
|
|
|
|
|
|
|
public ChampionController(ILogger<ChampionController> logger)
|
|
|
|
|
|
|
|
|
|
|
|
public ChampionController(StubData manager, ILogger<ChampionController> logger)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
_logger = logger;
|
|
|
|
data = manager;
|
|
|
|
|
|
|
|
_logger = logger;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
@ -59,52 +61,57 @@ namespace API.Controllers
|
|
|
|
List<ChampionDto> DtoChamps = new List<ChampionDto>();
|
|
|
|
List<ChampionDto> DtoChamps = new List<ChampionDto>();
|
|
|
|
|
|
|
|
|
|
|
|
// Chargement de la liste des champions Dto à partir des champions
|
|
|
|
// 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);
|
|
|
|
return Ok(DtoChamps);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[HttpGet]
|
|
|
|
[HttpGet("count")]
|
|
|
|
[Route("{Name}")]
|
|
|
|
public async Task<IActionResult> GetCount()
|
|
|
|
public async Task<ActionResult<ChampionDto>> GetChampById(int id)
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// Récupération de la liste des champions
|
|
|
|
try
|
|
|
|
IEnumerable<Champion?> Champs = await data.ChampionsMgr.GetItems(id, 1);
|
|
|
|
{
|
|
|
|
|
|
|
|
// Renvoie le nombre de champion
|
|
|
|
// Récupération du champion correspondant à l'id
|
|
|
|
return Ok(data.ChampionsMgr.GetNbItems());
|
|
|
|
if (id >= 0 && id < data.ChampionsMgr.GetNbItems().Result)
|
|
|
|
}
|
|
|
|
|
|
|
|
catch (Exception e)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return Ok(Champs.First().ToDto());
|
|
|
|
return BadRequest(e.Message);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return BadRequest("404");
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[HttpGet("{Name}/Skins")]
|
|
|
|
|
|
|
|
public async Task<ActionResult<SkinDto>> GetSkinsChamp(string name)
|
|
|
|
[HttpGet("{name}")]
|
|
|
|
|
|
|
|
public async Task<ActionResult<ChampionDto>> GetChampByName(string name)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// Récupération de la liste des champions
|
|
|
|
try
|
|
|
|
IEnumerable<Champion?> Champs = await data.ChampionsMgr.GetItemsByName(name, await data.ChampionsMgr.GetNbItemsByName(name), 1);
|
|
|
|
{
|
|
|
|
|
|
|
|
// Récupération de la liste des champions
|
|
|
|
|
|
|
|
IEnumerable<Champion?> 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
|
|
|
|
return BadRequest(e.Message);
|
|
|
|
Champion champion = Champs.First();
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
// Récupération des skin du champion
|
|
|
|
|
|
|
|
IEnumerable<Skin?> Skins = await data.SkinsMgr.GetItemsByChampion(champion, 0, data.SkinsMgr.GetNbItemsByChampion(champion).Result);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Création de la liste de skin
|
|
|
|
|
|
|
|
List<SkinDto> skins = new List<SkinDto>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Ajout des skins dans la nouvelle liste
|
|
|
|
|
|
|
|
Skins.ToList().ForEach(Skin => skins.Add(Skin.ToDto()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return Ok(skins);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return BadRequest();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**** Méthodes POST ****/
|
|
|
|
/**** Méthodes POST ****/
|
|
|
|
[HttpPost("Ajouter/{nom}")]
|
|
|
|
[HttpPost("Ajouter/{nom}")]
|
|
|
|
public async Task<ActionResult> PostChampName(string nom)
|
|
|
|
public async Task<ActionResult> PostChampName(string nom)
|
|
|
@ -115,7 +122,7 @@ namespace API.Controllers
|
|
|
|
// Ajout du champion dans la BD
|
|
|
|
// Ajout du champion dans la BD
|
|
|
|
await data.ChampionsMgr.AddItem(champion);
|
|
|
|
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")]
|
|
|
|
[HttpPost("Ajouter")]
|
|
|
@ -133,8 +140,7 @@ namespace API.Controllers
|
|
|
|
[HttpPost]
|
|
|
|
[HttpPost]
|
|
|
|
public async Task<ActionResult> post([FromBody] ChampionDto championDto)
|
|
|
|
public async Task<ActionResult> post([FromBody] ChampionDto championDto)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return CreatedAtAction(nameof(GetChampById), new { id = 1 },
|
|
|
|
return CreatedAtAction(nameof(GetChampByName), new { id = 1 }, await data.ChampionsMgr.AddItem(championDto.ToModel()));
|
|
|
|
await data.ChampionsMgr.AddItem(championDto.ToModel()));
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**** Méthodes DELETE ****/
|
|
|
|
/**** Méthodes DELETE ****/
|
|
|
@ -154,7 +160,7 @@ namespace API.Controllers
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**** Méthodes PUT ****/
|
|
|
|
/**** Méthodes PUT ****
|
|
|
|
|
|
|
|
|
|
|
|
[HttpPut("Modifier/{nom}")]
|
|
|
|
[HttpPut("Modifier/{nom}")]
|
|
|
|
public async Task<ActionResult> PutChampName(string nom)
|
|
|
|
public async Task<ActionResult> PutChampName(string nom)
|
|
|
@ -166,13 +172,13 @@ namespace API.Controllers
|
|
|
|
return CreatedAtAction(nameof(GetChampById), new { id = data.ChampionsMgr.GetNbItems().Result - 1 }, champion.ToDto());
|
|
|
|
return CreatedAtAction(nameof(GetChampById), new { id = data.ChampionsMgr.GetNbItems().Result - 1 }, champion.ToDto());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*[HttpPut("Modifier")]
|
|
|
|
[HttpPut("Modifier")]
|
|
|
|
public async Task<IActionResult> PutChamp([FromBody] ChampionDto championDto)
|
|
|
|
public async Task<IActionResult> PutChamp([FromBody] ChampionDto championDto)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Champion champion = championDto.ToModel();
|
|
|
|
Champion champion = championDto.ToModel();
|
|
|
|
await data.ChampionsMgr.UpdateItem(champion);
|
|
|
|
await data.ChampionsMgr.UpdateItem(champion);
|
|
|
|
return CreatedAtAction(nameof(GetChampById), new { id = data.ChampionsMgr.GetItems(0, data.ChampionsMgr.GetNbItems().Result).Result.ToList().IndexOf(champion) }, champion);
|
|
|
|
return CreatedAtAction(nameof(GetChampById), new { id = data.ChampionsMgr.GetItems(0, data.ChampionsMgr.GetNbItems().Result).Result.ToList().IndexOf(champion) }, champion);
|
|
|
|
}*/
|
|
|
|
}
|
|
|
|
|
|
|
|
*/
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|