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 AdministratorServiceManager(IAdministratorManager administratorManager) : IAdministratorManager { private IAdministratorManager manager = administratorManager; public async Task addAdmin(AdministratorDto admin) { return await Task.FromResult((await manager.addAdmin(admin.ToModel())).ToDto()); } public async Task getAdministrator(int id) { return (await manager.getAdministrator(id))?.ToDto(); } public async Task getAdministratorByUsername(string username) { return await Task.FromResult((await manager.getAdministratorByUsername(username))?.ToDto()); } public async Task<(int nbPages, IEnumerable? administrators)> getAdministrators(int nb, int count, AdministratorOrderCriteria orderCriteria = AdministratorOrderCriteria.ById) { List? tmp = new List(); var res = await manager.getAdministrators(nb, count, orderCriteria); if (res.administrators == null) tmp = null; else { foreach (var item in res.administrators) { tmp.Add(item.ToDto()); } } return await Task.FromResult<(int nbPages, IEnumerable? administrators)>((res.nbPages, tmp)); } public int getNbAdmins() { return manager.getNbAdmins(); } public async Task removeAdmin(AdministratorDto admin) { return (await manager.removeAdmin(admin.ToModel()))?.ToDto(); } public async Task removeAdmin(int id) { return (await manager.removeAdmin(id))?.ToDto(); } public async Task setPassword(string username, string newHashedPassword) { return await manager.setPassword(username, newHashedPassword); } public async Task updateAdministrator(int id, AdministratorDto admin) { return (await manager.updateAdministrator(id, admin.ToModel()))?.ToDto(); } } }