public async Task UpdateQuestionAsync([FromBody] QuestionUpdateRequest model)
        {
            var question = await _questionnaireService.GetQuestionAsync(model.Id);

            if (question != null)
            {
                await _questionnaireService.UpdateQuestionAsync(_mapper.Map <Question>(model));
            }
        }
示例#2
0
        public async Task <ActionResult> PutAsync([FromRoute] Guid id, [FromBody] QuestionUpdateRequest request)
        {
            var question = _mapper.Map <QuestionEditModel>(request);

            question.QuestionUserId = User.UserId().Value;
            question.QuestionId     = id;
            await _questionService.EditQuestionAsync(question);

            return(NoContent());
        }
        public async Task <ActionResult> UpdateAsync([FromRoute] string id, [FromBody] QuestionUpdateRequest request, CancellationToken cancellationToken)
        {
            if (string.IsNullOrEmpty(request.Summary))
            {
                throw new ArgumentNullException(nameof(request.Summary));
            }

            await _questionService.UpdateAsync(id, request, cancellationToken);

            return(Ok());
        }
示例#4
0
        public async Task UpdateAsync_Right_CommentsShouldAppend()
        {
            var before = await CreateOrGetOneQuestionWithNoAnswerAsync();

            var updateRequest = new QuestionUpdateRequest {
                Title = before.Title + "-updated", Summary = "summary"
            };
            await _questionService.UpdateAsync(before.Id, updateRequest, CancellationToken.None);

            var after = await _questionService.GetAsync(before.Id, CancellationToken.None);

            after.Comments.Should().NotBeEmpty();
            after.Comments.Count.Should().Be(before.Comments.Count + 1);
        }
示例#5
0
        public async Task UpdateAsync_Right_ShoudBeOk()
        {
            var before = await CreateOrGetOneQuestionWithNoAnswerAsync();

            var updateRequest = new QuestionUpdateRequest {
                Title = before.Title + "-updated", Summary = "summary"
            };
            await _questionService.UpdateAsync(before.Id, updateRequest, CancellationToken.None);

            var after = await _questionService.GetAsync(before.Id, CancellationToken.None);

            after.Should().NotBeNull();
            after.Title.Should().Be(updateRequest.Title);
        }
        public async Task Put_Updates_Question()
        {
            _quizRepository.Add(new Quiz {
                Id = 1, Name = "asd", DateAdded = DateTime.Now
            });
            _questionRepository.Add(new Question {
                Id = 2, QuizId = 1, Text = "Pytankoo", Choices = null
            });

            await _quizRepository.SaveChangesAsync();

            await _questionRepository.SaveChangesAsync();

            var newQuestion = new QuestionUpdateRequest {
                Text = "Pytanie na sniadanie"
            };

            var result = await _questionsController.Put(1, 2, newQuestion);

            //Assert
            Assert.True(result.Value.Text == newQuestion.Text);
        }
示例#7
0
        public async Task UpdateAsync(string id, QuestionUpdateRequest request, CancellationToken cancellationToken)
        {
            var filter = Builders <Question> .Filter.Eq(q => q.Id, id);

            //var update = Builders<Question>.Update
            //    .Set(q => q.Title, request.Title)
            //    .Set(q => q.Content, request.Content)
            //    .Set(q => q.Tags, request.Tags)
            //    .Push(q => q.Comments, new Comment {Content = request.Summary, CreatedAt = DateTime.Now});

            var updateFieldList = new List <UpdateDefinition <Question> >();

            if (!string.IsNullOrWhiteSpace(request.Title))
            {
                updateFieldList.Add(Builders <Question> .Update.Set(q => q.Title, request.Title));
            }

            if (!string.IsNullOrWhiteSpace(request.Content))
            {
                updateFieldList.Add(Builders <Question> .Update.Set(q => q.Content, request.Content));
            }

            if (request.Tags != null && request.Tags.Any())
            {
                updateFieldList.Add(Builders <Question> .Update.Set(q => q.Tags, request.Tags));
            }

            updateFieldList.Add(Builders <Question> .Update.Push(q => q.Comments,
                                                                 new Comment {
                Content = request.Summary, CreatedAt = DateTime.Now
            }));

            var update = Builders <Question> .Update.Combine(updateFieldList);

            await _questionCollection.UpdateOneAsync(filter, update, cancellationToken : cancellationToken);
        }
    public async Task <ActionResult <QuestionResponse> > Put(int quizId, int questionId, QuestionUpdateRequest request)
    {
        var updateResponse = await _questionService.Update(quizId, questionId, request);

        if (!updateResponse.Success)
        {
            if (!updateResponse.Found)
            {
                return(NotFound(updateResponse.Errors));
            }
            return(BadRequest(updateResponse.Errors));
        }
        return(updateResponse.Object);
    }