You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Trek12_API/Sources/Stub/Stub/StubData.Games.cs

115 lines
4.1 KiB

using Model;
using Shared;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Stub
{
public partial class StubData
{
private List<Game> games = new()
{
new Game(new DateOnly(2023,06,03), new Player("test1"),new GameMode("gamemode test1")),
new Game(new DateOnly(2023,06,03), new Player("test2"),new GameMode("gamemode test2")),
new Game(new DateOnly(2023,06,03), new Player("test3"),new GameMode("gamemode test3")),
new Game(new DateOnly(2023,06,03), new Player("test4"),new GameMode("gamemode test4")),
new Game(new DateOnly(2023,06,03), new Player("test5"),new GameMode("gamemode test5")),
};
public class GamesManager : IGamesManager
{
private readonly StubData parent;
public GamesManager(StubData parent)
=> this.parent = parent;
public Task<bool> IGamesManager.AddCaseValueToPlayer(int idGame, int idPlayer, int value, int index)
{
var game = parent.games.FirstOrDefault(g => g.Id == idGame);
if(game == null)
{
return Task.FromResult(false);
}
var player = game.Players.FirstOrDefault(p => p.Id == idPlayer);
if(player == null)
{
return Task.FromResult(false);
}
game.AddCaseValueToPlayer(player, value, index);
return Task.FromResult(true);
}
public Task<bool> IGamesManager.AddPlayer(Player player)
{
var game = parent.games.FirstOrDefault();
if(game == null)
{
return Task.FromResult(false) ;
}
game.Players.AddItem(player);
return Task.FromResult(true);
}
public Task<bool> IGamesManager.AddScoreToPlayer(int idGame, int idPlayer, int score)
{
var game = parent.games.FirstOrDefault(g => g.Id == idGame);
if( game == null)
{
return Task.FromResult(false);
}
var player = game.Players.FirstOrDefault(p => p.Id == idPlayer);
if(player == null)
{
return Task.FromResult(false);
}
game.AddScoreToPlayer(player, score);
return Task.FromResult(true);
}
public Task<bool> IGamesManager.AddTime(TimeSpan time)
{
var game = parent.games.FirstOrDefault();
if (game == null)
{
return Task.FromResult(false);
}
game.AddTime(time);
return Task.FromResult(true);
}
public Task<bool> IGamesManager.AddTurn(Turn turn)
{
var game = parent.games.FirstOrDefault();
if( game == null)
{
return Task.FromResult(false);
}
game.AddTurn(turn);
return Task.FromResult(true);
}
public Task<Game?> IGenericDataManager<Game?>.AddItem(Game? item)
=> parent.games.AddItem(item);
public Task<bool> IGenericDataManager<Game?>.DeleteItem(Game? item)
=> parent.games.DeleteItem(item);
public Task<IEnumerable<Game?>> IGenericDataManager<Game?>.GetItems(int index, int count, string? orderingPropertyName, bool descending)
=> parent.games.GetItemsWithFilterAndOrdering(
g => true,
index, count,
orderingPropertyName, descending);
public Task<int> IGenericDataManager<Game?>.GetNbItems()
=> Task.FromResult(parent.games.Count());
public Task<Game?> IGenericDataManager<Game?>.UpdateItem(Game? oldItem, Game? newItem)
=> parent.games.UpdateItem(oldItem, newItem);
}
}
}