|
|
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
using Model;
|
|
|
|
|
using StubLib;
|
|
|
|
|
using WebApiLol.Converter;
|
|
|
|
|
|
|
|
|
@ -12,26 +13,29 @@ namespace WebApiLol.Controllers;
|
|
|
|
|
[Route("[controller]")]
|
|
|
|
|
public class ChampionController : ControllerBase
|
|
|
|
|
{
|
|
|
|
|
private StubData.ChampionsManager ChampionsManager { get; set; } = new StubData.ChampionsManager(new StubData());
|
|
|
|
|
//private StubData.ChampionsManager ChampionManager { get; set; } = new StubData.ChampionManager(new StubData());
|
|
|
|
|
|
|
|
|
|
private readonly ILogger<ChampionController> _logger;
|
|
|
|
|
|
|
|
|
|
public ChampionController(ILogger<ChampionController> logger)
|
|
|
|
|
private IChampionsManager _dataManager;
|
|
|
|
|
|
|
|
|
|
public ChampionController(ILogger<ChampionController> logger, IDataManager dataManager)
|
|
|
|
|
{
|
|
|
|
|
_logger = logger;
|
|
|
|
|
_dataManager = dataManager.ChampionsMgr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[HttpGet]
|
|
|
|
|
public async Task<IActionResult> Get()
|
|
|
|
|
{
|
|
|
|
|
var list = await ChampionsManager.GetItems(0, await ChampionsManager.GetNbItems());
|
|
|
|
|
var list = await _dataManager.GetItems(0, await _dataManager.GetNbItems());
|
|
|
|
|
return Ok(list.Select(champion => champion?.toDTO()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[HttpGet("name")]
|
|
|
|
|
public async Task<IActionResult> GetById(string name)
|
|
|
|
|
{
|
|
|
|
|
var championSelected = await ChampionsManager.GetItemsByName(name, 0, await ChampionsManager.GetNbItemsByName(name), null);
|
|
|
|
|
var championSelected = await _dataManager.GetItemsByName(name, 0, await _dataManager.GetNbItemsByName(name), null);
|
|
|
|
|
return Ok(championSelected.Select(c => c?.toDTO()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -39,7 +43,7 @@ public class ChampionController : ControllerBase
|
|
|
|
|
public async Task<IActionResult> AddChampion([FromBody] ChampionDTO champion)
|
|
|
|
|
{
|
|
|
|
|
var newChampion = champion.toModel();
|
|
|
|
|
await ChampionsManager.AddItem(newChampion);
|
|
|
|
|
await _dataManager.AddItem(newChampion);
|
|
|
|
|
if (champion.Bio == "string")
|
|
|
|
|
{
|
|
|
|
|
champion.Bio = "Aucune bio";
|
|
|
|
@ -51,7 +55,7 @@ public class ChampionController : ControllerBase
|
|
|
|
|
[HttpPut("Update")]
|
|
|
|
|
public async Task<IActionResult> UpdateChampion(string name, [FromBody] ChampionDTO champion)
|
|
|
|
|
{
|
|
|
|
|
var championSelected = await ChampionsManager.GetItemsByName(name, 0, await ChampionsManager.GetNbItemsByName(name), null);
|
|
|
|
|
var championSelected = await _dataManager.GetItemsByName(name, 0, await _dataManager.GetNbItemsByName(name), null);
|
|
|
|
|
var existingChampion = championSelected.FirstOrDefault();
|
|
|
|
|
if (existingChampion == null)
|
|
|
|
|
{
|
|
|
|
@ -59,7 +63,7 @@ public class ChampionController : ControllerBase
|
|
|
|
|
return NotFound();
|
|
|
|
|
}
|
|
|
|
|
var updatedChampion = champion.toModel();
|
|
|
|
|
await ChampionsManager.UpdateItem(existingChampion, updatedChampion);
|
|
|
|
|
await _dataManager.UpdateItem(existingChampion, updatedChampion);
|
|
|
|
|
if (updatedChampion.Bio == "string")
|
|
|
|
|
{
|
|
|
|
|
updatedChampion.Bio = "Aucune bio";
|
|
|
|
@ -71,8 +75,8 @@ public class ChampionController : ControllerBase
|
|
|
|
|
[HttpDelete("Delete")]
|
|
|
|
|
public async Task<IActionResult> DeleteChampion(string name)
|
|
|
|
|
{
|
|
|
|
|
var championSelected = await ChampionsManager.GetItemsByName(name, 0, await ChampionsManager.GetNbItemsByName(name), null);
|
|
|
|
|
if (!await ChampionsManager.DeleteItem(championSelected.FirstOrDefault()))
|
|
|
|
|
var championSelected = await _dataManager.GetItemsByName(name, 0, await _dataManager.GetNbItemsByName(name), null);
|
|
|
|
|
if (!await _dataManager.DeleteItem(championSelected.FirstOrDefault()))
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("champion { " + name + " } not found !");
|
|
|
|
|
return NotFound();
|
|
|
|
|