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 LobbyDataManager : ILobbyManager { private ILobbyManager manager; public LobbyDataManager(ILobbyManager manager) { this.manager = manager; } public async Task addLobby(Lobby lobby) { return await Task.FromResult((await manager.addLobby(lobby.ToEntity())).ToModel()); } 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.ToModel()); } } return await Task.FromResult<(int nbPages, IEnumerable? lobbies)>((res.nbPages, tmp)); } public async Task getLobby(int id) { return await Task.FromResult((await manager.getLobby(id))?.ToModel()); } public async Task getLobby(string name, int? idCreator) { return (await manager.getLobby(name, idCreator))?.ToModel(); } public int getNbLobbies() { return manager.getNbLobbies(); } public async Task removeLobby(Lobby lobby) { return (await manager.removeLobby(lobby.ToEntity()))?.ToModel(); } public async Task removeLobby(int id) { return (await manager.removeLobby(id))?.ToModel(); } } }