@ -27,12 +27,13 @@ namespace ApiLol.Controllers.v2
[HttpGet]
public async Task < IActionResult > Get ( [ FromQuery ] PageRequest pageRequest )
{
_logger . LogInformation ( "Executing {Action} - CHAMPION - V2.0 with parameters: {Parameters}" , nameof ( Get ) , pageRequest ) ;
try
{
int nbTotal = await _manager . ChampionsMgr . GetNbItems ( ) ;
if ( pageRequest . count = = 0 )
{
pageRequest = new PageRequest ( ) { index = 0 , count = nbTotal } ;
pageRequest = new PageRequest ( ) { index = 0 , count = nbTotal , orderingPropertyName = pageRequest . orderingPropertyName , descending = pageRequest . descending , name = pageRequest . name } ;
}
else if ( pageRequest . count * pageRequest . index > = nbTotal )
{
@ -40,13 +41,13 @@ namespace ApiLol.Controllers.v2
return BadRequest ( $"Champion limit exceed, max {nbTotal}" ) ;
}
_logger . LogInformation ( "Executing {Action} with parameters: {Parameters}" , nameof ( Get ) , pageRequest . count ) ;
IEnumerable < ChampionDto > dtos = ( await _manager . ChampionsMgr . GetItems ( pageRequest . index , pageRequest . count ) )
. Select ( x = > x . ToDto ( ) ) ;
return Ok ( dtos ) ;
}
catch ( Exception error )
{
_logger . LogError ( error . Message ) ;
return BadRequest ( error . Message ) ;
}
}
@ -55,12 +56,13 @@ namespace ApiLol.Controllers.v2
[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
{
int nbTotal = await _manager . ChampionsMgr . GetNbItems ( ) ;
if ( pageRequest . count = = 0 )
{
pageRequest = new PageRequest ( ) { index = 0 , count = nbTotal } ;
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 )
{
@ -68,13 +70,22 @@ namespace ApiLol.Controllers.v2
return BadRequest ( $"Champion limit exceed, max {nbTotal}" ) ;
}
_logger . LogInformation ( "Executing {Action} with parameters: {Parameters}" , nameof ( Get ) , pageRequest ) ;
IEnumerable < ChampionDto > dtos = ( await _manager . ChampionsMgr . GetItems ( pageRequest . index , pageRequest . count , pageRequest . orderingPropertyName , pageRequest . descending ) )
IEnumerable < ChampionDto > dtos ;
if ( pageRequest . name = = null )
{
dtos = ( await _manager . ChampionsMgr . GetItems ( 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 } ) ;
}
else
{
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 } ) ;
}
catch ( Exception error )
{
_logger . LogError ( error . Message ) ;
return BadRequest ( error . Message ) ;
}
}
@ -83,20 +94,21 @@ namespace ApiLol.Controllers.v2
[HttpGet("{name}")]
public async Task < IActionResult > Get ( string name )
{
_logger . LogInformation ( "method {Action} - CHAMPION - V2.0 call with {name}" , nameof ( Get ) , name ) ;
try
{
_logger . LogInformation ( "method {Action} call with {name}" , nameof ( Get ) , name ) ;
var dtos = ( await _manager . ChampionsMgr . GetItemByName ( name , 0 , await _manager . ChampionsMgr . GetNbItems ( ) ) )
. Select ( x = > x . ToDto ( ) ) ;
if ( dtos . IsNullOrEmpty ( ) )
{
_logger . LogWarning ( $"{name} was not found" ) ;
return NotFound ( ) ;
return NotFound ( $"{name} was not found" ) ;
}
return Ok ( dtos . First ( ) ) ;
}
catch ( Exception error )
{
_logger . LogError ( error . Message ) ;
return BadRequest ( error . Message ) ;
}
}
@ -105,19 +117,20 @@ namespace ApiLol.Controllers.v2
[HttpPost]
public async Task < IActionResult > Post ( [ FromBody ] ChampionDto champion )
{
_logger . LogInformation ( "method {Action} - CHAMPION - V2.0 call with {item}" , nameof ( Post ) , champion ) ;
try
{
_logger . LogInformation ( "method {Action} call with {item}" , nameof ( Post ) , champion ) ;
var dtos = ( await _manager . ChampionsMgr . GetItemByName ( champion . Name , 0 , await _manager . ChampionsMgr . GetNbItems ( ) ) ) ;
if ( ! dtos . IsNullOrEmpty ( ) )
if ( await _manager . ChampionsMgr . GetNbItemsByName ( champion . Name ) = = 0 )
{
return BadRequest ( "Name is already exist" ) ;
}
return CreatedAtAction ( nameof ( Get ) ,
return CreatedAtAction ( nameof ( Get ) ,
( await _manager . ChampionsMgr . AddItem ( champion . ToModel ( ) ) ) . ToDto ( ) ) ;
}
_logger . LogWarning ( $"Name : {champion.Name} is already exist" ) ;
return BadRequest ( $"Name : {champion.Name} is already exist" ) ;
}
catch ( Exception error )
{
_logger . LogError ( error . Message ) ;
return BadRequest ( error . Message ) ;
}
}
@ -126,9 +139,9 @@ namespace ApiLol.Controllers.v2
[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 ) ;
try
{
_logger . LogInformation ( "method {Action} call with {name} and {item}" , nameof ( Put ) , name , champion ) ;
var dtos = ( await _manager . ChampionsMgr . GetItemByName ( name , 0 , await _manager . ChampionsMgr . GetNbItems ( ) ) ) ;
if ( dtos . IsNullOrEmpty ( ) )
{
@ -140,13 +153,14 @@ namespace ApiLol.Controllers.v2
var dtos2 = ( await _manager . ChampionsMgr . GetItemByName ( champion . Name , 0 , await _manager . ChampionsMgr . GetNbItems ( ) ) ) ;
if ( dtos2 . IsNullOrEmpty ( ) | | dtos2 . Count ( ) > 0 )
{
return BadRequest ( "Name is already exist") ;
return BadRequest ( $ "New N ame {champion.Name} is already exist") ;
}
}
return Ok ( ( await _manager . ChampionsMgr . UpdateItem ( dtos . First ( ) , champion . ToModel ( ) ) ) . ToDto ( ) ) ;
}
catch ( Exception error )
{
_logger . LogError ( error . Message ) ;
return BadRequest ( error . Message ) ;
}
}
@ -154,9 +168,9 @@ namespace ApiLol.Controllers.v2
[HttpGet("/{name}/skins")]
public async Task < ActionResult < SkinDto > > GetChampionsSkins ( string name )
{
_logger . LogInformation ( "method {Action} - CHAMPION - V2.0 call with {name}" , nameof ( GetChampionsSkins ) , name ) ;
try
{
_logger . LogInformation ( "method {Action} call with {name}" , nameof ( GetChampionsSkins ) , name ) ;
var champions = await _manager . ChampionsMgr . GetItemByName ( name , 0 , await _manager . ChampionsMgr . GetNbItems ( ) ) ;
//skinsDTO
IEnumerable < SkinDto > res = champions . First ( ) . Skins . Select ( e = > e . ToDto ( ) ) ;
@ -165,6 +179,7 @@ namespace ApiLol.Controllers.v2
}
catch ( Exception error )
{
_logger . LogError ( error . Message ) ;
return BadRequest ( error . Message ) ;
}
}
@ -174,7 +189,7 @@ namespace ApiLol.Controllers.v2
{
try
{
_logger . LogInformation ( "method {Action} call with {name}", nameof ( GetChampionsSkills ) , name ) ;
_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 ( ) ) ;
//SkillDTO
IEnumerable < SkillDto > res = champions . First ( ) . Skills . Select ( e = > e . ToDto ( ) ) ;
@ -183,6 +198,21 @@ namespace ApiLol.Controllers.v2
}
catch ( Exception error )
{
_logger . LogError ( error . Message ) ;
return BadRequest ( error . Message ) ;
}
}
[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 ) ;
}
}
@ -191,9 +221,9 @@ namespace ApiLol.Controllers.v2
[HttpDelete("{name}")]
public async Task < IActionResult > Delete ( string name )
{
_logger . LogInformation ( "method {Action} - CHAMPION - V2.0 call with {name}" , nameof ( Delete ) , name ) ;
try
{
_logger . LogInformation ( "method {Action} call with {name}" , nameof ( Delete ) , name ) ;
var dtos = ( await _manager . ChampionsMgr . GetItemByName ( name , 0 , await _manager . ChampionsMgr . GetNbItems ( ) ) ) ;
if ( dtos . IsNullOrEmpty ( ) )
{
@ -204,6 +234,7 @@ namespace ApiLol.Controllers.v2
}
catch ( Exception error )
{
_logger . LogError ( error . Message ) ;
return BadRequest ( error . Message ) ;
}
}