just update Controllers 📀

pull/7/head
Emre KARTAL 2 years ago
parent 49a795992b
commit 7759337bcf

Binary file not shown.

@ -1,43 +1,177 @@
using Microsoft.AspNetCore.Mvc; using ApiLol.Mapper;
using DTO;
// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 using Microsoft.AspNetCore.Mvc;
using Microsoft.IdentityModel.Tokens;
using Model;
// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace ApiLol.Controllers namespace ApiLol.Controllers
{ {
[Route("api/[controller]")] [Route("api/[controller]")]
[ApiController] [ApiController]
public class RunesController : ControllerBase public class RunesController : ControllerBase
{ {
// GET: api/<RunesController> private readonly IDataManager _manager;
[HttpGet] private readonly ILogger<RunesController> _logger;
public IEnumerable<string> Get()
public RunesController(IDataManager dataManager, ILogger<RunesController> logger)
{ {
return new string[] { "value1", "value2" }; _logger = logger;
this._manager = dataManager;
}
// GET: api/<RunesController>
[HttpGet]
public async Task<IActionResult> Get([FromQuery] PageRequest pageRequest)
{
_logger.LogInformation("Executing {Action} - RUNE with parameters: {Parameters}", nameof(Get), pageRequest);
try
{
int nbTotal = await _manager.RunesMgr.GetNbItems();
if (pageRequest.count == 0)
{
pageRequest = new PageRequest() { index = 0, count = nbTotal, orderingPropertyName = pageRequest.orderingPropertyName, descending = pageRequest.descending, name = pageRequest.name };
}
else if (pageRequest.count * pageRequest.index >= nbTotal || pageRequest.count > nbTotal)
{
_logger.LogWarning("too many, maximum {number}", nbTotal);
return BadRequest($"Rune limit exceed, max {nbTotal}");
}
IEnumerable<RuneDto> dtos;
if (pageRequest.name == null)
{
dtos = (await _manager.RunesMgr.GetItems(pageRequest.index, pageRequest.count, pageRequest.orderingPropertyName, pageRequest.descending))
.Select(x => x.ToDto());
}
else
{
dtos = (await _manager.RunesMgr.GetItemsByName(pageRequest.name, pageRequest.index, pageRequest.count, pageRequest.orderingPropertyName, pageRequest.descending))
.Select(x => x.ToDto());
}
return Ok(new { Data = dtos, index = pageRequest.index, count = pageRequest.count, total = nbTotal });
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
} }
// GET api/<RunesController>/5 // GET api/<RunesController>/5
[HttpGet("{name}")] [HttpGet("{name}")]
public string Get(string name) public async Task<IActionResult> Get(string name)
{ {
return "value"; _logger.LogInformation("method {Action} - RUNE call with {name}", nameof(Get), name);
try
{
var dtos = (await _manager.RunesMgr.GetItemByName(name, 0, await _manager.RunesMgr.GetNbItems()))
.Select(x => x.ToDto());
if (dtos.IsNullOrEmpty())
{
_logger.LogWarning($"{name} was not found");
return NotFound($"{name} was not found");
}
return Ok(dtos.First());
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
} }
// POST api/<RunesController> // POST api/<RunesController>
[HttpPost] [HttpPost]
public void Post([FromBody] string value) public async Task<IActionResult> Post([FromBody] RuneDto rune)
{ {
} _logger.LogInformation("method {Action} - RUNE call with {item}", nameof(Post), rune);
try
// PUT api/<RunesController>/5 {
[HttpPut("{id}")] if (await _manager.RunesMgr.GetNbItemsByName(rune.Name) == 0)
public void Put(int id, [FromBody] string value) {
{ return CreatedAtAction(nameof(Get),
(await _manager.RunesMgr.AddItem(rune.ToModel())));
}
_logger.LogWarning($"Name : {rune.Name} is already exist");
return BadRequest($"Name : {rune.Name} is already exist");
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
}
// PUT api/<RunesController>/5
[HttpPut("{name}")]
public async Task<IActionResult> Put(string name, [FromBody] RuneDto rune)
{
_logger.LogInformation("method {Action} - RUNE call with {name} and {item}", nameof(Put), name, rune);
try
{
var dtos = (await _manager.RunesMgr.GetItemByName(name, 0, await _manager.RunesMgr.GetNbItems()));
if (dtos.IsNullOrEmpty())
{
return NotFound($"Name {name} not exist");
}
// Checks if the new name exists
if (name != rune.Name)
{
var dtos2 = (await _manager.RunesMgr.GetItemByName(rune.Name, 0, await _manager.RunesMgr.GetNbItems()));
if (dtos2.IsNullOrEmpty() || dtos2.Count() > 0)
{
return BadRequest($"New Name {rune.Name} is already exist");
}
}
return Ok(await _manager.RunesMgr.UpdateItem(dtos.First(),rune.ToModel()));
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
} }
// DELETE api/<RunesController>/5 // DELETE api/<RunesController>/5
[HttpDelete("{id}")] [HttpDelete("{name}")]
public void Delete(int id) public async Task<IActionResult> Delete(string name)
{ {
} _logger.LogInformation("method {Action} - RUNE call with {name}", nameof(Delete), name);
} try
{
var dtos = (await _manager.RunesMgr.GetItemByName(name, 0, await _manager.RunesMgr.GetNbItems()));
if (dtos.IsNullOrEmpty())
{
_logger.LogWarning("{name} was not found", name);
return BadRequest();
}
return Ok(await _manager.RunesMgr.DeleteItem(dtos.First()));
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
}
[HttpGet("/countRunes")]
public async Task<ActionResult<int>> GetCountSkins()
{
try
{
return Ok(await _manager.RunesMgr.GetNbItems());
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
}
}
} }

@ -1,183 +1,221 @@
using ApiLol.Mapper; using ApiLol.Mapper;
using DTO; using DTO;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.IdentityModel.Tokens; using Microsoft.IdentityModel.Tokens;
using Model; using Model;
// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 // For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace ApiLol.Controllers namespace ApiLol.Controllers
{ {
[Route("api/[controller]")] [Route("api/[controller]")]
[ApiController] [ApiController]
public class SkinsController : ControllerBase public class SkinsController : ControllerBase
{ {
private readonly IDataManager _manager; private readonly IDataManager _manager;
private readonly ILogger<SkinsController> _logger; private readonly ILogger<SkinsController> _logger;
public SkinsController(IDataManager dataManager, ILogger<SkinsController> logger) public SkinsController(IDataManager dataManager, ILogger<SkinsController> logger)
{ {
_logger = logger; _logger = logger;
this._manager = dataManager; this._manager = dataManager;
} }
// GET: api/<SkinsController> // GET: api/<SkinsController>
[HttpGet] [HttpGet]
public async Task<IActionResult> Get([FromQuery] PageRequest pageRequest) public async Task<IActionResult> Get([FromQuery] PageRequest pageRequest)
{ {
_logger.LogInformation("Executing {Action} - SKIN with parameters: {Parameters}", nameof(Get), pageRequest.count); _logger.LogInformation("Executing {Action} - SKIN with parameters: {Parameters}", nameof(Get), pageRequest);
try try
{ {
int nbTotal = await _manager.SkinsMgr.GetNbItems(); int nbTotal = await _manager.SkinsMgr.GetNbItems();
if (pageRequest.count == 0) if (pageRequest.count == 0)
{ {
pageRequest = new PageRequest() { index = 0, count = nbTotal, orderingPropertyName = pageRequest.orderingPropertyName, descending = pageRequest.descending, name = pageRequest.name }; pageRequest = new PageRequest() { index = 0, count = nbTotal, orderingPropertyName = pageRequest.orderingPropertyName, descending = pageRequest.descending, name = pageRequest.name };
} }
else if (pageRequest.count * pageRequest.index >= nbTotal || pageRequest.count > nbTotal) else if (pageRequest.count * pageRequest.index >= nbTotal || pageRequest.count > nbTotal)
{ {
_logger.LogWarning("too many, maximum {number}", nbTotal); _logger.LogWarning("too many, maximum {number}", nbTotal);
return BadRequest($"Champion limit exceed, max {nbTotal}"); return BadRequest($"Skin limit exceed, max {nbTotal}");
} }
IEnumerable<SkinDtoC> dtos; IEnumerable<SkinDtoC> dtos;
if (pageRequest.name == null) if (pageRequest.name == null)
{ {
dtos = (await _manager.SkinsMgr.GetItems(pageRequest.index, pageRequest.count, pageRequest.orderingPropertyName, pageRequest.descending)) dtos = (await _manager.SkinsMgr.GetItems(pageRequest.index, pageRequest.count, pageRequest.orderingPropertyName, pageRequest.descending))
.Select(x => x.ToDtoC()); .Select(x => x.ToDtoC());
} }
else else
{ {
dtos = (await _manager.SkinsMgr.GetItemsByName(pageRequest.name, pageRequest.index, pageRequest.count, pageRequest.orderingPropertyName, pageRequest.descending)) dtos = (await _manager.SkinsMgr.GetItemsByName(pageRequest.name, pageRequest.index, pageRequest.count, pageRequest.orderingPropertyName, pageRequest.descending))
.Select(x => x.ToDtoC()); .Select(x => x.ToDtoC());
} }
return Ok(new { Data = dtos, index = pageRequest.index, count = pageRequest.count, total = nbTotal }); return Ok(new { Data = dtos, index = pageRequest.index, count = pageRequest.count, total = nbTotal });
} }
catch (Exception error) catch (Exception error)
{ {
_logger.LogError(error.Message); _logger.LogError(error.Message);
return BadRequest(error.Message); return BadRequest(error.Message);
} }
} }
// GET api/<SkinsController>/5 // GET api/<SkinsController>/5
[HttpGet("{name}")] [HttpGet("{name}")]
public async Task<IActionResult> Get(string name) public async Task<IActionResult> Get(string name)
{ {
_logger.LogInformation("method {Action} - SKIN call with {name}", nameof(Get), name); _logger.LogInformation("method {Action} - SKIN call with {name}", nameof(Get), name);
try try
{ {
var dtos = (await _manager.SkinsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems())) var dtos = (await _manager.SkinsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems()))
.Select(x => x.ToDtoC()); .Select(x => x.ToDtoC());
if (dtos.IsNullOrEmpty()) if (dtos.IsNullOrEmpty())
{ {
_logger.LogWarning($"{name} was not found"); _logger.LogWarning($"{name} was not found");
return NotFound($"{name} was not found"); return NotFound($"{name} was not found");
} }
return Ok(dtos.First()); return Ok(dtos.First());
} }
catch (Exception error) catch (Exception error)
{ {
_logger.LogError(error.Message); _logger.LogError(error.Message);
return BadRequest(error.Message); return BadRequest(error.Message);
} }
} }
// POST api/<SkinsController> // POST api/<SkinsController>
[HttpPost] [HttpPost]
public async Task<IActionResult> Post([FromBody] SkinDtoC skin) public async Task<IActionResult> Post([FromBody] SkinDtoC skin)
{ {
_logger.LogInformation("method {Action} - SKIN call with {item}", nameof(Post), skin); _logger.LogInformation("method {Action} - SKIN call with {item}", nameof(Post), skin);
try try
{ {
if (skin.ChampionName != null) if (skin.ChampionName != null)
{ {
var dtos = (await _manager.ChampionsMgr.GetItemByName(skin.ChampionName, 0, await _manager.ChampionsMgr.GetNbItems())); var dtos = (await _manager.ChampionsMgr.GetItemByName(skin.ChampionName, 0, await _manager.ChampionsMgr.GetNbItems()));
if (dtos.IsNullOrEmpty()) if (dtos.IsNullOrEmpty())
{ {
_logger.LogWarning($"Champion Name : {skin.ChampionName} not exist"); _logger.LogWarning($"Champion Name : {skin.ChampionName} not exist");
return BadRequest($"Champion Name : {skin.ChampionName} not exist"); return BadRequest($"Champion Name : {skin.ChampionName} not exist");
} }
else else
{ {
if (await _manager.SkinsMgr.GetNbItemsByName(skin.Name) == 0) if (await _manager.SkinsMgr.GetNbItemsByName(skin.Name) == 0)
{ {
return CreatedAtAction(nameof(Get), return CreatedAtAction(nameof(Get),
(await _manager.SkinsMgr.AddItem(skin.ToModelC(dtos.First()))).ToDtoC()); (await _manager.SkinsMgr.AddItem(skin.ToModelC(dtos.First()))).ToDtoC());
} }
_logger.LogWarning($"Name : {skin.Name} is already exist"); _logger.LogWarning($"Name : {skin.Name} is already exist");
return BadRequest($"Name : {skin.Name} is already exist"); return BadRequest($"Name : {skin.Name} is already exist");
} }
} }
else else
{ {
return BadRequest("Please fill in the name of the champion"); return BadRequest("Please fill in the name of the champion");
} }
} }
catch (Exception error) catch (Exception error)
{ {
_logger.LogError(error.Message); _logger.LogError(error.Message);
return BadRequest(error.Message); return BadRequest(error.Message);
} }
} }
// PUT api/<SkinsController>/5 // PUT api/<SkinsController>/5
[HttpPut("{name}")] [HttpPut("{name}")]
public async Task<IActionResult> Put(string name, [FromBody] SkinDtoC skin) public async Task<IActionResult> Put(string name, [FromBody] SkinDtoC skin)
{ {
_logger.LogInformation("method {Action} - SKIN call with {name} and {item}", nameof(Put), name, skin); _logger.LogInformation("method {Action} - SKIN call with {name} and {item}", nameof(Put), name, skin);
try try
{ {
var dtos = (await _manager.SkinsMgr.GetItemByName(name, 0, await _manager.SkinsMgr.GetNbItems())); var dtos = (await _manager.SkinsMgr.GetItemByName(name, 0, await _manager.SkinsMgr.GetNbItems()));
if (dtos.IsNullOrEmpty()) if (dtos.IsNullOrEmpty())
{ {
return NotFound($"Name {name} not exist"); return NotFound($"Name {name} not exist");
} }
// Checks if the new name exists // Checks if the new name exists
if (name != skin.Name) if (name != skin.Name)
{ {
var dtos2 = (await _manager.SkinsMgr.GetItemByName(skin.Name, 0, await _manager.ChampionsMgr.GetNbItems())); var dtos2 = (await _manager.SkinsMgr.GetItemByName(skin.Name, 0, await _manager.SkinsMgr.GetNbItems()));
if (dtos2.IsNullOrEmpty() || dtos2.Count() > 0) if (dtos2.IsNullOrEmpty() || dtos2.Count() > 0)
{ {
return BadRequest($"New Name {skin.Name} is already exist"); return BadRequest($"New Name {skin.Name} is already exist");
} }
} }
var dtosChampion = (await _manager.ChampionsMgr.GetItemByName(skin.ChampionName, 0, await _manager.ChampionsMgr.GetNbItems())); var dtosChampion = (await _manager.ChampionsMgr.GetItemByName(skin.ChampionName, 0, await _manager.ChampionsMgr.GetNbItems()));
if (dtosChampion.IsNullOrEmpty()) if (dtosChampion.IsNullOrEmpty())
{ {
_logger.LogWarning($"Champion Name : {skin.ChampionName} not exist"); _logger.LogWarning($"Champion Name : {skin.ChampionName} not exist");
return BadRequest($"Champion Name : {skin.ChampionName} not exist"); return BadRequest($"Champion Name : {skin.ChampionName} not exist");
} }
return Ok((await _manager.SkinsMgr.UpdateItem(dtos.First(), skin.ToModelC(dtosChampion.First()))).ToDtoC()); return Ok((await _manager.SkinsMgr.UpdateItem(dtos.First(), skin.ToModelC(dtosChampion.First()))).ToDtoC());
} }
catch (Exception error) catch (Exception error)
{ {
_logger.LogError(error.Message); _logger.LogError(error.Message);
return BadRequest(error.Message); return BadRequest(error.Message);
} }
} }
// DELETE api/<SkinsController>/5 [HttpGet("/{name}/champion")]
[HttpDelete("{name}")] public async Task<ActionResult<ChampionDto>> GetChampionBySkinName(string name)
public async Task<IActionResult> Delete(string name) {
{ _logger.LogInformation("method {Action} - Skin call with {name}", nameof(GetChampionBySkinName), name);
_logger.LogInformation("method {Action} - Skin call with {name}", nameof(Delete), name); try
try {
{ var dtos = (await _manager.SkinsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems()))
var dtos = (await _manager.SkinsMgr.GetItemByName(name, 0, await _manager.SkinsMgr.GetNbItems())); .Select(x => x.ToDtoC());
if (dtos.IsNullOrEmpty()) if (dtos.IsNullOrEmpty())
{ {
_logger.LogWarning("{name} was not found", name); _logger.LogWarning($"{name} was not found");
return BadRequest(); return NotFound($"{name} was not found");
} }
return Ok(await _manager.SkinsMgr.DeleteItem(dtos.First())); var champion = (await _manager.ChampionsMgr.GetItemByName(dtos.First().ChampionName, 0, 1));
} return Ok(champion.First().ToDto());
catch (Exception error) }
{ catch (Exception error)
_logger.LogError(error.Message); {
return BadRequest(error.Message); _logger.LogError(error.Message);
} return BadRequest(error.Message);
} }
} }
}
[HttpGet("/countSkins")]
public async Task<ActionResult<int>> GetCountSkins()
{
try
{
return Ok(await _manager.SkinsMgr.GetNbItems());
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
}
// DELETE api/<SkinsController>/5
[HttpDelete("{name}")]
public async Task<IActionResult> Delete(string name)
{
_logger.LogInformation("method {Action} - SKIN call with {name}", nameof(Delete), name);
try
{
var dtos = (await _manager.SkinsMgr.GetItemByName(name, 0, await _manager.SkinsMgr.GetNbItems()));
if (dtos.IsNullOrEmpty())
{
_logger.LogWarning("{name} was not found", name);
return BadRequest();
}
return Ok(await _manager.SkinsMgr.DeleteItem(dtos.First()));
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
}
}
}

@ -67,6 +67,20 @@ namespace ApiLol.Controllers.v1
} }
[HttpGet("/countChampions")]
public async Task<ActionResult<int>> GetCountChampions()
{
try
{
return Ok(await _manager.ChampionsMgr.GetNbItems());
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
}
// DELETE api/<ValuesController>/5 // DELETE api/<ValuesController>/5
[HttpDelete("{name}")] [HttpDelete("{name}")]
public async Task<IActionResult> Delete(string name) public async Task<IActionResult> Delete(string name)

@ -1,220 +1,242 @@
using ApiLol.Mapper; using ApiLol.Mapper;
using Azure.Core; using Azure.Core;
using DTO; using DTO;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.IdentityModel.Tokens; using Microsoft.IdentityModel.Tokens;
using Model; using Model;
// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 // For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace ApiLol.Controllers.v2 namespace ApiLol.Controllers.v2
{ {
[ApiVersion("2.0")] [ApiVersion("2.0")]
[ApiVersion("3.0")] [ApiVersion("3.0")]
[Route("api/v{version:apiVersion}/[controller]")] [Route("api/v{version:apiVersion}/[controller]")]
[ApiController] [ApiController]
public class ChampionsController : ControllerBase public class ChampionsController : ControllerBase
{ {
private readonly IDataManager _manager; private readonly IDataManager _manager;
private readonly ILogger<ChampionsController> _logger; private readonly ILogger<ChampionsController> _logger;
public ChampionsController(IDataManager dataManager, ILogger<ChampionsController> logger) public ChampionsController(IDataManager dataManager, ILogger<ChampionsController> logger)
{ {
_logger = logger; _logger = logger;
this._manager = dataManager; this._manager = dataManager;
} }
// GET: api/<ValuesController> // GET: api/<ValuesController>
[HttpGet] [HttpGet]
public async Task<IActionResult> Get([FromQuery] PageRequest pageRequest) public async Task<IActionResult> Get([FromQuery] PageRequest pageRequest)
{ {
_logger.LogInformation("Executing {Action} - CHAMPION - V2.0 with parameters: {Parameters}", nameof(Get), pageRequest.count); _logger.LogInformation("Executing {Action} - CHAMPION - V2.0 with parameters: {Parameters}", nameof(Get), pageRequest);
try try
{ {
int nbTotal = await _manager.ChampionsMgr.GetNbItems(); int nbTotal = await _manager.ChampionsMgr.GetNbItems();
if (pageRequest.count == 0) if (pageRequest.count == 0)
{ {
pageRequest = new PageRequest() { index = 0, count = nbTotal, orderingPropertyName = pageRequest.orderingPropertyName, descending = pageRequest.descending, name = pageRequest.name }; pageRequest = new PageRequest() { index = 0, count = nbTotal, orderingPropertyName = pageRequest.orderingPropertyName, descending = pageRequest.descending, name = pageRequest.name };
} }
else if (pageRequest.count * pageRequest.index >= nbTotal) else if (pageRequest.count * pageRequest.index >= nbTotal)
{ {
_logger.LogWarning($"too many, maximum {nbTotal}"); _logger.LogWarning($"too many, maximum {nbTotal}");
return BadRequest($"Champion limit exceed, max {nbTotal}"); return BadRequest($"Champion limit exceed, max {nbTotal}");
} }
IEnumerable<ChampionDto> dtos = (await _manager.ChampionsMgr.GetItems(pageRequest.index, pageRequest.count)) IEnumerable<ChampionDto> dtos = (await _manager.ChampionsMgr.GetItems(pageRequest.index, pageRequest.count))
.Select(x => x.ToDto()); .Select(x => x.ToDto());
return Ok(dtos); return Ok(dtos);
} }
catch (Exception error) catch (Exception error)
{ {
return BadRequest(error.Message); _logger.LogError(error.Message);
} return BadRequest(error.Message);
} }
}
// GET: api/<ValuesController>
[HttpGet, MapToApiVersion("3.0")] // GET: api/<ValuesController>
public async Task<IActionResult> GetV3([FromQuery] PageRequest pageRequest) [HttpGet, MapToApiVersion("3.0")]
{ public async Task<IActionResult> GetV3([FromQuery] PageRequest pageRequest)
_logger.LogInformation("Executing {Action} - CHAMPION - V3.0 with parameters: {Parameters}", nameof(Get), pageRequest); {
try _logger.LogInformation("Executing {Action} - CHAMPION - V3.0 with parameters: {Parameters}", nameof(Get), pageRequest);
{ try
int nbTotal = await _manager.ChampionsMgr.GetNbItems(); {
if (pageRequest.count == 0) int nbTotal = await _manager.ChampionsMgr.GetNbItems();
{ if (pageRequest.count == 0)
pageRequest = new PageRequest() { index = 0, count = nbTotal, orderingPropertyName = pageRequest.orderingPropertyName, descending = pageRequest.descending, name = pageRequest.name }; {
} pageRequest = new PageRequest() { index = 0, count = nbTotal, orderingPropertyName = pageRequest.orderingPropertyName, descending = pageRequest.descending, name = pageRequest.name };
else if (pageRequest.count * pageRequest.index >= nbTotal || pageRequest.count > nbTotal) }
{ else if (pageRequest.count * pageRequest.index >= nbTotal || pageRequest.count > nbTotal)
_logger.LogWarning("too many, maximum {number}", nbTotal); {
return BadRequest($"Champion limit exceed, max {nbTotal}"); _logger.LogWarning("too many, maximum {number}", nbTotal);
} return BadRequest($"Champion limit exceed, max {nbTotal}");
}
IEnumerable<ChampionDto> dtos;
if (pageRequest.name == null) IEnumerable<ChampionDto> dtos;
{ if (pageRequest.name == null)
dtos = (await _manager.ChampionsMgr.GetItems(pageRequest.index, pageRequest.count, pageRequest.orderingPropertyName, pageRequest.descending)) {
.Select(x => x.ToDto()); dtos = (await _manager.ChampionsMgr.GetItems(pageRequest.index, pageRequest.count, pageRequest.orderingPropertyName, pageRequest.descending))
} .Select(x => x.ToDto());
else }
{ else
dtos = (await _manager.ChampionsMgr.GetItemsByName(pageRequest.name, pageRequest.index, pageRequest.count, pageRequest.orderingPropertyName, pageRequest.descending)) {
.Select(x => x.ToDto()); dtos = (await _manager.ChampionsMgr.GetItemsByName(pageRequest.name, pageRequest.index, pageRequest.count, pageRequest.orderingPropertyName, pageRequest.descending))
} .Select(x => x.ToDto());
return Ok(new { Data = dtos, index = pageRequest.index, count = pageRequest.count, total = nbTotal }); }
} return Ok(new { Data = dtos, index = pageRequest.index, count = pageRequest.count, total = nbTotal });
catch (Exception error) }
{ catch (Exception error)
return BadRequest(error.Message); {
} _logger.LogError(error.Message);
} return BadRequest(error.Message);
}
// GET api/<ValuesController>/5 }
[HttpGet("{name}")]
public async Task<IActionResult> Get(string name) // GET api/<ValuesController>/5
{ [HttpGet("{name}")]
_logger.LogInformation("method {Action} - CHAMPION - V2.0 call with {name}", nameof(Get), name); public async Task<IActionResult> Get(string name)
try {
{ _logger.LogInformation("method {Action} - CHAMPION - V2.0 call with {name}", nameof(Get), name);
var dtos = (await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems())) try
.Select(x => x.ToDto()); {
if (dtos.IsNullOrEmpty()) var dtos = (await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems()))
{ .Select(x => x.ToDto());
_logger.LogWarning($"{name} was not found"); if (dtos.IsNullOrEmpty())
return NotFound($"{name} was not found"); {
} _logger.LogWarning($"{name} was not found");
return Ok(dtos.First()); return NotFound($"{name} was not found");
} }
catch (Exception error) return Ok(dtos.First());
{ }
return BadRequest(error.Message); catch (Exception error)
} {
} _logger.LogError(error.Message);
return BadRequest(error.Message);
// POST api/<ValuesController> }
[HttpPost] }
public async Task<IActionResult> Post([FromBody] ChampionDto champion)
{ // POST api/<ValuesController>
_logger.LogInformation("method {Action} - CHAMPION - V2.0 call with {item}", nameof(Post), champion); [HttpPost]
try public async Task<IActionResult> Post([FromBody] ChampionDto champion)
{ {
if (await _manager.ChampionsMgr.GetNbItemsByName(champion.Name) == 0) _logger.LogInformation("method {Action} - CHAMPION - V2.0 call with {item}", nameof(Post), champion);
{ try
return CreatedAtAction(nameof(Get), {
(await _manager.ChampionsMgr.AddItem(champion.ToModel())).ToDto()); if (await _manager.ChampionsMgr.GetNbItemsByName(champion.Name) == 0)
} {
_logger.LogWarning($"Name : {champion.Name} is already exist"); return CreatedAtAction(nameof(Get),
return BadRequest($"Name : {champion.Name} is already exist"); (await _manager.ChampionsMgr.AddItem(champion.ToModel())).ToDto());
} }
catch (Exception error) _logger.LogWarning($"Name : {champion.Name} is already exist");
{ return BadRequest($"Name : {champion.Name} is already exist");
return BadRequest(error.Message); }
} catch (Exception error)
} {
_logger.LogError(error.Message);
// PUT api/<ValuesController>/5 return BadRequest(error.Message);
[HttpPut("{name}")] }
public async Task<IActionResult> Put(string name, [FromBody] ChampionDto champion) }
{
_logger.LogInformation("method {Action} - CHAMPION - V2.0 call with {name} and {item}", nameof(Put), name, champion); // PUT api/<ValuesController>/5
try [HttpPut("{name}")]
{ public async Task<IActionResult> Put(string name, [FromBody] ChampionDto champion)
var dtos = (await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems())); {
if (dtos.IsNullOrEmpty()) _logger.LogInformation("method {Action} - CHAMPION - V2.0 call with {name} and {item}", nameof(Put), name, champion);
{ try
return NotFound($"Name {name} not exist"); {
} var dtos = (await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems()));
// Checks if the new name exists if (dtos.IsNullOrEmpty())
if (name != champion.Name) {
{ return NotFound($"Name {name} not exist");
var dtos2 = (await _manager.ChampionsMgr.GetItemByName(champion.Name, 0, await _manager.ChampionsMgr.GetNbItems())); }
if (dtos2.IsNullOrEmpty() || dtos2.Count() > 0) // Checks if the new name exists
{ if (name != champion.Name)
return BadRequest($"New Name {champion.Name} is already exist"); {
} var dtos2 = (await _manager.ChampionsMgr.GetItemByName(champion.Name, 0, await _manager.ChampionsMgr.GetNbItems()));
} if (dtos2.IsNullOrEmpty() || dtos2.Count() > 0)
return Ok((await _manager.ChampionsMgr.UpdateItem(dtos.First(), champion.ToModel())).ToDto()); {
} return BadRequest($"New Name {champion.Name} is already exist");
catch (Exception error) }
{ }
return BadRequest(error.Message); return Ok((await _manager.ChampionsMgr.UpdateItem(dtos.First(), champion.ToModel())).ToDto());
} }
} catch (Exception error)
{
[HttpGet("/{name}/skins")] _logger.LogError(error.Message);
public async Task<ActionResult<SkinDto>> GetChampionsSkins(string name) return BadRequest(error.Message);
{ }
_logger.LogInformation("method {Action} - CHAMPION - V2.0 call with {name}", nameof(GetChampionsSkins), name); }
try
{ [HttpGet("/{name}/skins")]
var champions = await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems()); public async Task<ActionResult<SkinDto>> GetChampionsSkins(string name)
//skinsDTO {
IEnumerable<SkinDto> res = champions.First().Skins.Select(e => e.ToDto()); _logger.LogInformation("method {Action} - CHAMPION - V2.0 call with {name}", nameof(GetChampionsSkins), name);
try
return Ok(res); {
} var champions = await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems());
catch (Exception error) //skinsDTO
{ IEnumerable<SkinDto> res = champions.First().Skins.Select(e => e.ToDto());
return BadRequest(error.Message);
} return Ok(res);
} }
catch (Exception error)
[HttpGet("/{name}/skills")] {
public async Task<ActionResult<SkillDto>> GetChampionsSkills(string name) _logger.LogError(error.Message);
{ return BadRequest(error.Message);
try }
{ }
_logger.LogInformation("method {Action} - CHAMPION - V2.0 call with {name}", nameof(GetChampionsSkills), name);
var champions = await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems()); [HttpGet("/{name}/skills")]
//SkillDTO public async Task<ActionResult<SkillDto>> GetChampionsSkills(string name)
IEnumerable<SkillDto> res = champions.First().Skills.Select(e => e.ToDto()); {
try
return Ok(res); {
} _logger.LogInformation("method {Action} - CHAMPION - V2.0 call with {name}", nameof(GetChampionsSkills), name);
catch (Exception error) var champions = await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems());
{ //SkillDTO
return BadRequest(error.Message); IEnumerable<SkillDto> res = champions.First().Skills.Select(e => e.ToDto());
}
} return Ok(res);
}
// DELETE api/<ValuesController>/5 catch (Exception error)
[HttpDelete("{name}")] {
public async Task<IActionResult> Delete(string name) _logger.LogError(error.Message);
{ return BadRequest(error.Message);
_logger.LogInformation("method {Action} - CHAMPION - V2.0 call with {name}", nameof(Delete), name); }
try }
{
var dtos = (await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems())); [HttpGet("/countChampions")]
if (dtos.IsNullOrEmpty()) public async Task<ActionResult<int>> GetCountChampions()
{ {
_logger.LogWarning("{name} was not found", name); try
return BadRequest(); {
} return Ok(await _manager.ChampionsMgr.GetNbItems());
return Ok(await _manager.ChampionsMgr.DeleteItem(dtos.First())); }
} catch (Exception error)
catch (Exception error) {
{ _logger.LogError(error.Message);
return BadRequest(error.Message); return BadRequest(error.Message);
} }
} }
}
// DELETE api/<ValuesController>/5
[HttpDelete("{name}")]
public async Task<IActionResult> Delete(string name)
{
_logger.LogInformation("method {Action} - CHAMPION - V2.0 call with {name}", nameof(Delete), name);
try
{
var dtos = (await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems()));
if (dtos.IsNullOrEmpty())
{
_logger.LogWarning("{name} was not found", name);
return BadRequest();
}
return Ok(await _manager.ChampionsMgr.DeleteItem(dtos.First()));
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
}
}
} }

@ -40,9 +40,9 @@ namespace ApiTests
Assert.AreEqual(skinsResult.Count(), total); Assert.AreEqual(skinsResult.Count(), total);
} }*/
[TestMethod] /* [TestMethod]
public async Task TestPostSkin() public async Task TestPostSkin()
{ {
//Arange //Arange
@ -62,9 +62,9 @@ namespace ApiTests
var champions = objectResult?.Value as Ski; var champions = objectResult?.Value as Ski;
Assert.IsNotNull(champions); Assert.IsNotNull(champions);
} }*/
[TestMethod] /* [TestMethod]
public async Task TestPutSkin() public async Task TestPutSkin()
{ {
//Arange //Arange

Loading…
Cancel
Save