public async Task <ActionResult> EndorseAnswer(int answerId) { var user = await _userManager.FindByNameAsync(User.Identity.Name); if (user == null) { return(Unauthorized()); } var endorsement = await _context.EndorsedAnswers.Where(x => x.UserId == user.Id && x.AnswerId == answerId).FirstOrDefaultAsync(); if (endorsement != null) { return(BadRequest("Answer has already been endorsed by the user.")); } var endorsedAnswer = new EndorsedAnswer { UserId = user.Id.ToString(), AnswerId = answerId, }; _context.EndorsedAnswers.Add(endorsedAnswer); await _context.SaveChangesAsync(); return(NoContent()); }
public async Task <ActionResult> RemoveAnswerEndorsement(int answerId) { var user = await _userManager.FindByNameAsync(User.Identity.Name); if (user == null) { return(Unauthorized()); } EndorsedAnswer endorsedAnswer = await _context.EndorsedAnswers.Where(x => x.AnswerId == answerId && x.UserId == user.Id).FirstOrDefaultAsync(); if (endorsedAnswer == null) { return(NotFound()); } _context.EndorsedAnswers.Remove(endorsedAnswer); await _context.SaveChangesAsync(); return(NoContent()); }
public async Task <ActionResult <EndorsedAnswerViewModel> > GetEndorsedAnswer(int answerId) { var user = await _userManager.FindByNameAsync(User.Identity.Name); if (user == null) { return(Unauthorized()); } EndorsedAnswer endorsedAnswer = await _context.EndorsedAnswers.Where(x => x.AnswerId == answerId && x.UserId == user.Id).FirstOrDefaultAsync(); if (endorsedAnswer == null) { return(NotFound()); } return(new EndorsedAnswerViewModel { Id = endorsedAnswer.Id, AnswerId = endorsedAnswer.AnswerId, UserId = endorsedAnswer.UserId, }); }