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 AnswerServiceManager(MyDbContext dbContext) : IAnswerManager { private AnswerDataManager manager = new AnswerDataManager(dbContext); public async Task addAnswer(AnswerDto answerdto) { return await Task.FromResult((await manager.addAnswer(answerdto.ToModel())).ToDto()); } public async Task getAnswer(uint id) { return await Task.FromResult((await manager.getAnswer(id))?.ToDto()); } public async Task<(int nbPages, IEnumerable? answers)> getAnswers(int nb, int count, AnswerOrderCriteria orderCriteria = AnswerOrderCriteria.ById) { List? tmp = new List(); var res = await manager.getAnswers(nb, count, orderCriteria); if (res.answers == null) tmp = null; else { foreach (var item in res.answers) { tmp.Add(item.ToDto()); } } return await Task.FromResult<(int nbPages, IEnumerable? answers)>((res.nbPages, tmp)); } public async Task?> getAnswersByIdQuestion(uint id) { var tmp = await manager.getAnswersByIdQuestion(id); List? answerdto = new List(); if (tmp == null) answerdto = null; else { foreach (var item in tmp) { answerdto.Add(item.ToDto()); } } return await Task.FromResult?>(answerdto); } public int getNbElements() { return manager.getNbElements(); } public async Task removeAnswer(uint id) { return (await manager.removeAnswer(id))?.ToDto(); } public async Task removeAnswer(AnswerDto answerdto) { return (await manager.removeAnswer(answerdto.ToModel()))?.ToDto(); } public async Task updateAnswer(uint id, AnswerDto answerdto) { return (await manager.updateAnswer(id, answerdto.ToModel()))?.ToDto(); } } }