using DbConnectionLibrairie; 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 AnswerDataManager(MyDbContext dbContext) : IAnswerManager { private AnswerEntityManager manager = new AnswerEntityManager(dbContext); public async Task addAnswer(Answer answer) { return await Task.FromResult((await manager.addAnswer(answer.ToEntity())).ToModel()); } public async Task getAnswer(uint id) { return await Task.FromResult((await manager.getAnswer(id))?.ToModel()); } 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.ToModel()); } } return await Task.FromResult<(int nbPages, IEnumerable? answers)>((res.nbPages, tmp)); } public async Task?> getAnswersByIdQuestion(uint id) { var tmp = await manager.getAnswersByIdQuestion(id); List? answer = new List(); if (tmp == null) answer = null; else { foreach (var item in tmp) { answer.Add(item.ToModel()); } } return await Task.FromResult?>(answer); } public int getNbElements() { return manager.getNbElements(); } public async Task removeAnswer(uint id) { return (await manager.removeAnswer(id))?.ToModel(); } public async Task removeAnswer(Answer answer) { return (await manager.removeAnswer(answer.ToEntity()))?.ToModel(); } public async Task updateAnswer(uint id, Answer answer) { return (await manager.updateAnswer(id, answer.ToEntity()))?.ToModel(); } } }