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) { 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 (res.nbPages, tmp); } 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(); } public async Task?> getAnswers(string content) { return (await manager.getAnswers(content))?.Select(a => a.ToDto()); } } }