コード例 #1
0
        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());
        }
コード例 #2
0
        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());
        }