using DbConnectionLibrairie; using DataManagers; using ExtensionsClassLibrairie; using ManagerInterfaces; using Model; using OrderCriterias; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using DTOs; namespace ServiceManagers { public class PlayerServiceManager(IPlayerManager manager) : IPlayerManager { private IPlayerManager manager = manager; public async Task addPlayer(PlayerDto playerdto) { return await Task.FromResult((await manager.addPlayer(playerdto.ToModel())).ToDto()); } 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))?.ToDto()); } public async Task getPlayer(string nickname) { return await Task.FromResult((await manager.getPlayer(nickname))?.ToDto()); } 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.ToDto()); } } 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.ToDto()); } } return await Task.FromResult?>(tmp); } public async Task removePlayer(PlayerDto playerdto) { return (await manager.removePlayer(playerdto.ToModel()))?.ToDto(); } public async Task removePlayer(int id) { return (await manager.removePlayer(id))?.ToDto(); } } }