🔨 maj gameController, DTOs et Converter

malanone/dbdatamanager
Aurelien PINTRAND 2 years ago
parent d65c6cf623
commit 20e578f7bc

@ -42,7 +42,7 @@ namespace Model
// Id = id; // Id = id;
//} //}
public Game(DateOnly date, Player owner, GameMode gameMode, int id = 0) public Game(DateOnly date, Player ?owner, GameMode gameMode, int id = 0)
{ {
Date = date; Date = date;
Players = new ReadOnlyCollection<Player>(players); Players = new ReadOnlyCollection<Player>(players);

@ -104,7 +104,7 @@ namespace Stub
public Task<bool> DeleteItem(Game? item) public Task<bool> DeleteItem(Game? item)
=> parent.games.DeleteItem(item); => parent.games.DeleteItem(item);
public Task<IEnumerable<Game?>> GetItems(int index, int count, string? orderingPropertyName, bool descending) public Task<IEnumerable<Game?>> GetItems(int index, int count, string? orderingPropertyName, bool descending = false)
=> parent.games.GetItemsWithFilterAndOrdering( => parent.games.GetItemsWithFilterAndOrdering(
g => true, g => true,
index, count, index, count,
@ -116,23 +116,10 @@ namespace Stub
public Task<Game?> UpdateItem(Game? oldItem, Game? newItem) public Task<Game?> UpdateItem(Game? oldItem, Game? newItem)
=> parent.games.UpdateItem(oldItem, newItem); => parent.games.UpdateItem(oldItem, newItem);
/*public Task<IEnumerable<Game?>> GetItemsById(int idPlayer) public Task<IEnumerable<Game?>> GetItemsById(int id)
{ {
var Task<> return parent.games.GetItemsWithFilterAndOrdering<Game>(game => filterById(game, id), 0, 1);
}
foreach (var game in parent.games)
{
foreach (var player in game.Players)
{
if (player.Id == idPlayer)
{
}
}
return false;
}*/
// return parent.games.GetItemsWithFilterAndOrdering<Game>(game => filterById(game, id), 0, 1);
} }

@ -1,5 +1,8 @@
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Model;
using Stub; using Stub;
using Trek12_API.DTO;
using static Stub.StubData;
namespace Trek12_API.Controllers namespace Trek12_API.Controllers
{ {
@ -31,8 +34,8 @@ namespace Trek12_API.Controllers
} }
} }
/* [HttpGet("/GameById")] [HttpGet("/GameById/{id}")]
public async Task<IActionResult> GetGameById(int id) public async Task<IActionResult> GetGameById([FromRoute] int id)
{ {
try try
{ {
@ -44,16 +47,29 @@ namespace Trek12_API.Controllers
{ {
return BadRequest(ex.Message); return BadRequest(ex.Message);
} }
}*/ }
[HttpDelete (Name = "DeleteGameById")]
/* public async Task<IActionResult> DeleteGame(int idGame)
[HttpGet("/GameByPlayer")]
public async Task<IActionResult> GetGamesByPlayer()
{ {
try var gameToDelete = await gamesManager.GetItemsById(idGame);
if (gameToDelete == null)
{ {
var games = await gamesManager.GetItems(0, gamesManager) return NotFound("Partie non trouvée");
} }
if (!await gamesManager.DeleteItem(gameToDelete.SingleOrDefault(game => game.Id == idGame)))
{
return BadRequest("Erreur lors de la suppression de la partie");
}
return Ok("Partie bien supprimée");
}
/* [HttpPut(Name = "UpdateGameById")]
public async Task<IActionResult> Update(int id, GameDTO newGame)
{
await gamesManager.UpdateItem(gamesManager.GetItemsById(id).Result.FirstOrDefault(), newGame.toModel());
return Ok(newPlayer);
}*/ }*/
} }
} }

@ -8,7 +8,7 @@ namespace Trek12_API.Converter
{ {
public static GameDTO toDTO(this Game game) public static GameDTO toDTO(this Game game)
{ {
var gameDTO = new GameDTO(game.Id, game.Date, game.Players.toDTOs().First(), game.GameMode.toDTO()); var gameDTO = new GameDTO();
gameDTO.Duration = game.Duration; gameDTO.Duration = game.Duration;
gameDTO.Date = game.Date; gameDTO.Date = game.Date;
gameDTO.Turns = new List<TurnDTO>(); gameDTO.Turns = new List<TurnDTO>();
@ -26,7 +26,50 @@ namespace Trek12_API.Converter
{ {
gameDTO.Scores.Add(score.Key.toDTO(), score.Value); gameDTO.Scores.Add(score.Key.toDTO(), score.Value);
} }
gameDTO.Players = new List<PlayerDTO>();
foreach ( var player in game.Players)
{
gameDTO.Players.Add(player.toDTO());
}
gameDTO.GameMode = new GamemodeDTO() {
Id = game.GameMode.Id,
Name = game.GameMode.Name
};
return gameDTO; return gameDTO;
} }
/*public static Game toModel(this GameDTO gameDTO)
{
{
var game = new Game();
game.Duration = gameDTO.Duration;
game.Date = gameDTO.Date;
game.Turns = new List<Turn>();
foreach (var turn in game.Turns)
{
gameDTO.Turns.Add(turn.toDTO());
}
gameDTO.Grilles = new Dictionary<PlayerDTO, GrilleDTO>();
foreach (var grille in game.Grilles)
{
gameDTO.Grilles.Add(grille.Key.toDTO(), grille.Value.toDTO());
}
gameDTO.Scores = new Dictionary<PlayerDTO, int>();
foreach (var score in game.Scores)
{
gameDTO.Scores.Add(score.Key.toDTO(), score.Value);
}
gameDTO.Players = new List<PlayerDTO>();
foreach (var player in game.Players)
{
gameDTO.Players.Add(player.toDTO());
}
gameDTO.GameMode = new GamemodeDTO()
{
Id = game.GameMode.Id,
Name = game.GameMode.Name
};
return gameDTO;
}*/
} }
} }

@ -11,12 +11,13 @@ namespace Trek12_API.DTO
public List<TurnDTO> Turns { get; set; } public List<TurnDTO> Turns { get; set; }
public Dictionary<PlayerDTO, GrilleDTO> Grilles { get; set; } public Dictionary<PlayerDTO, GrilleDTO> Grilles { get; set; }
public Dictionary<PlayerDTO, int> Scores { get; set; } public Dictionary<PlayerDTO, int> Scores { get; set; }
public List<PlayerDTO> Players { get; set; }
public GamemodeDTO GameMode { get; set; } public GamemodeDTO GameMode { get; set; }
public PlayerDTO Player { get; set; }
public GameDTO(int id, DateOnly date, PlayerDTO owner, GamemodeDTO gameMode) /* public GameDTO(int id, DateOnly date, PlayerDTO owner, GamemodeDTO gameMode)
{ {
Date = date; Date = date;
Players = new List<PlayerDTO>();
Grilles = new Dictionary<PlayerDTO, GrilleDTO>(); Grilles = new Dictionary<PlayerDTO, GrilleDTO>();
Scores = new Dictionary<PlayerDTO, int>(); Scores = new Dictionary<PlayerDTO, int>();
Turns = new List<TurnDTO>(); Turns = new List<TurnDTO>();
@ -24,7 +25,7 @@ namespace Trek12_API.DTO
Scores.Add(owner, 0); Scores.Add(owner, 0);
GameMode = gameMode; GameMode = gameMode;
Id = id; Id = id;
Player = owner; Players.Add(owner);
} }*/
} }
} }

Loading…
Cancel
Save