public async Task <ICollection <Answer> > FindAnswersforQuestionById(int id) { return(await dbcontext.Answers .Where(a => a.QuestionId == id) .Include(a => a.User) .Include(a => a.Moderator) .Select(a => DbMapper.MapDbAnswer(a)).ToListAsync()); }
public async Task <Answer> FindById(int id) { return(DbMapper.MapDbAnswer( await dbcontext.Answers .Include(a => a.User) .Include(a => a.Moderator) .FirstOrDefaultAsync(a => a.Id == id))); }
private async Task <Answer> AddAnswerToDbQuestion(DbQuestion question, Answer answer) { var now = DateTime.Now; DbAnswer dbAnswer = new DbAnswer() { Content = answer.Content, Created = now, LastUpdated = now, Type = answer.Type, }; var user = await dbcontext.Users.SingleOrDefaultAsync(u => u.UserName == answer.Author); if (question == null || user == null) { return(null); } dbAnswer.Question = question; dbAnswer.User = user; await dbcontext.Answers.AddAsync(dbAnswer); return(DbMapper.MapDbAnswer(dbAnswer)); }
public async Task <Answer> Update(Answer answer, bool updateTime = true) { var ans = await dbcontext.Answers.FirstAsync(a => a.Id == answer.Id); ans.Content = answer.Content; if (updateTime) { ans.LastUpdated = DateTime.Now; } var user = await dbcontext.Users.FirstOrDefaultAsync(u => u.UserName == answer.Author); if (user != null) { ans.User = user; } var moderator = await dbcontext.Users.FirstOrDefaultAsync(u => u.UserName == answer.Moderator); ans.Type = answer.Type; ans.Moderator = moderator; ans.ModeratorMessage = answer.ModeratorMessage; await dbcontext.SaveChangesAsync(); return(DbMapper.MapDbAnswer(ans)); }