public async Task <IActionResult> MarkAsAnswered( [FromBody] MarkAnswer markAnswer) { var curUserId = _userService.GetCurUserId(HttpContext); // verify question var question = await _context.ArtefactQuestions .SingleOrDefaultAsync(q => q.Id == markAnswer.QuestionId); if (question == null) { return(NotFound($"Question '{markAnswer.QuestionId}' does not exist.")); } if (question.AuthorId != curUserId) { return(Unauthorized("Only question owner can mark the question as answered.")); } // verify answer var answer = await _context.ArtefactComments .SingleOrDefaultAsync(q => q.Id == markAnswer.AnswerId); if (answer == null) { return(NotFound($"Question '{markAnswer.AnswerId}' does not exist.")); } if (answer.ParentCommentId != question.Id) { return(BadRequest($"Comment {markAnswer.AnswerId} does not " + $"have parent {markAnswer.QuestionId}.")); } // mark question as answered question.AnswerCommentId = markAnswer.AnswerId; question.IsAnswered = true; await _context.SaveChangesAsync(); return(new NoContentResult()); }
public async Task <IActionResult> RemoveMarkedAnswer( [FromBody] MarkAnswer removeMarkAnswer) { var curUserId = _userService.GetCurUserId(HttpContext); var question = await _context.ArtefactQuestions .SingleOrDefaultAsync(q => q.Id == removeMarkAnswer.QuestionId); if (question == null) { return(NotFound($"Question '{removeMarkAnswer.QuestionId}' does not exist")); } if (question.AnswerCommentId != removeMarkAnswer.AnswerId) { return(BadRequest($"Question '{removeMarkAnswer.QuestionId}' " + $"does not have answer '{removeMarkAnswer.AnswerId}'")); } question.IsAnswered = false; question.AnswerCommentId = null; await _context.SaveChangesAsync(); return(new NoContentResult()); }