using DbConnectionLibrairie; using Entities; 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 : IAnswerManager { private IAnswerManager manager; public AnswerDataManager(IAnswerManager manager) { this.manager = manager; } public async Task addAnswer(Answer answer) { return await Task.FromResult((await manager.addAnswer(answer.ToEntity())).ToModel()); } public async Task getAnswer(int 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(int 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 getNbAnswers() { return manager.getNbAnswers(); } public async Task removeAnswer(int id) { return (await manager.removeAnswer(id))?.ToModel(); } public async Task removeAnswer(Answer answer) { return (await manager.removeAnswer(answer.ToEntity()))?.ToModel(); } public async Task updateAnswer(int id, Answer answer) { return (await manager.updateAnswer(id, answer.ToEntity()))?.ToModel(); } } }