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 LobbyServiceManager(ILobbyManager manager) : ILobbyManager { private ILobbyManager manager = manager; public async Task addLobby(LobbyDto lobbydto) { return await Task.FromResult((await manager.addLobby(lobbydto.ToModel())).ToDto()); } public async Task<(int nbPages, IEnumerable? lobbies)> getLobbies(int nb, int count, LobbyOrderCriteria orderCriteria = LobbyOrderCriteria.ById) { List? tmp = new List(); var res = await manager.getLobbies(nb, count, orderCriteria); if (res.lobbies == null) tmp = null; else { foreach (var item in res.lobbies) { tmp.Add(item.ToDto()); } } return await Task.FromResult<(int nbPages, IEnumerable? lobbies)>((res.nbPages, tmp)); } public async Task getLobby(int id) { return (await manager.getLobby(id))?.ToDto(); } public async Task getLobby(string name, int? idCreator) { return (await manager.getLobby(name, idCreator))?.ToDto(); } public int getNbLobbies() { return manager.getNbLobbies(); } public async Task removeLobby(LobbyDto lobbydto) { return (await manager.removeLobby(lobbydto.ToModel()))?.ToDto(); } public async Task removeLobby(int id) { return (await manager.removeLobby(id))?.ToDto(); } } }