コード例 #1
0
        public async Task <ActionResult> Add(AnswerCreateRequest request, CancellationToken cancel)
        {
            var command = new AnswerCreateCommand(request.QuestionId, DateTime.Now, request.Content, _markdown.TransformIntoHTML(request.Content));
            var result  = await _mediator.ExecuteAsync <AnswerCreateCommand, AnswerCreateCommandResult>(command, User.GetAppIdentity(), cancel);

            return(Redirect(Url.RouteUrl("QuestionRead", new { id = result.QuestionId, slug = result.Slug, action = "get" }) + "#ans_" + result.AnswerId));
        }
コード例 #2
0
        public async Task <ActionResult <AnswerResponse> > Create([FromBody] AnswerCreateRequest model)
        {
            if (!this.ModelState.IsValid)
            {
                return(BadRequest());
            }

            var asnwerId = await this.answersServices.CreateAync(model.Text, model.IsCorrect, model.QuestionId);

            return(new AnswerResponse {
                Id = asnwerId, Text = model.Text
            });
        }
コード例 #3
0
        public async Task <ActionResult <AnswerGetViewModel> > PostAsync(
            [FromRoute] Guid questionId,
            [FromBody] AnswerCreateRequest request)
        {
            if (!(await _questionRepository.ExistsAsync(questionId)))
            {
                return(NotFound());
            }
            var answer = _mapper.Map <AnswerCreateModel>(request);

            answer.QuestionId = questionId;
            answer.UserId     = User.UserId().Value;
            var answerGetModel = await _answerService.PostAnswerAsync(answer);

            var answerGetViewModel = _mapper.Map <AnswerGetViewModel>(answerGetModel);

            answerGetViewModel.IsOwner     = User.IsOwner(answerGetViewModel);
            answerGetViewModel.IsModerator = User.Identity.IsAuthenticated && await _userService.IsModeratorAsync(User.UserId().Value);

            return(CreatedAtRoute("Get", new { answerId = answerGetModel.Id, questionId }, answerGetViewModel));
        }