using DbConnectionLibrairie; using Entities; using EntityManagers; using ExtensionsClassLibrairie; using ManagerInterfaces; using Model; using OrderCriterias; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DataManagers { public class PlayerDataManager : IPlayerManager { private IPlayerManager manager; public PlayerDataManager(IPlayerManager manager) { this.manager = manager; } public async Task addPlayer(Player player) { return await Task.FromResult((await manager.addPlayer(player.ToEntity())).ToModel()); } public async Task getMaxScorePlayer(int id, int idChapter) { return await manager.getMaxScorePlayer(id, idChapter); } public async Task getMaxScorePlayer(int id) { return await manager.getMaxScorePlayer(id); } public int getNbPlayers() { return manager.getNbPlayers(); } public async Task getPlayer(int id) { return await Task.FromResult((await manager.getPlayer(id))?.ToModel()); } public async Task getPlayer(string nickname) { return await Task.FromResult((await manager.getPlayer(nickname))?.ToModel()); } public async Task<(int nbPages, IEnumerable? players)> getPlayers(int nb, int count, PlayerOrderCriteria orderCriteria = PlayerOrderCriteria.ById) { List? tmp = new List(); var res = await manager.getPlayers(nb, count, orderCriteria); if (res.players == null) tmp = null; else { foreach (var item in res.players) { tmp.Add(item.ToModel()); } } return await Task.FromResult<(int nbPages, IEnumerable? players)>((res.nbPages, tmp)); } public async Task?> getPlayersInALobby(int idLobby) { List? tmp = new List(); var res = await manager.getPlayersInALobby(idLobby); if (res == null) tmp = null; else { foreach (var item in res) { tmp.Add(item.ToModel()); } } return await Task.FromResult?>(tmp); } public async Task removePlayer(Player player) { return (await manager.removePlayer(player.ToEntity()))?.ToModel(); } public async Task removePlayer(int id) { return (await manager.removePlayer(id))?.ToModel(); } } }