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; using Entities; namespace ServiceManagers { public class AnswerServiceManager(IAnswerManager manager) : IAnswerManager { private IAnswerManager manager = manager; public async Task addAnswer(AnswerDto answerdto) { return await Task.FromResult((await manager.addAnswer(answerdto.ToModel())).ToDto()); } public async Task getAnswer(int id) { return (await manager.getAnswer(id))?.ToDto(); } public async Task<(int nbPages, IEnumerable? answers)> getAnswers(int nb, int count, AnswerOrderCriteria orderCriteria = AnswerOrderCriteria.ById) { var res = await manager.getAnswers(nb, count, orderCriteria); return (res.nbPages, res.answers?.Select(a => a.ToDto())); } public async Task?> getAnswersByIdQuestion(int 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 answerdto; } public int getNbAnswers() { return manager.getNbAnswers(); } public async Task removeAnswer(int id) { return (await manager.removeAnswer(id))?.ToDto(); } public async Task removeAnswer(AnswerDto answerdto) { return (await manager.removeAnswer(answerdto.ToModel()))?.ToDto(); } public async Task updateAnswer(int id, AnswerDto answerdto) { return (await manager.updateAnswer(id, answerdto.ToModel()))?.ToDto(); } } }