Exemplo n.º 1
0
        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"
            });
            _choiceRepository.Add(new Choice {
                Id = 3, QuestionId = 2, Text = "Pytankoo"
            });

            await _quizRepository.SaveChangesAsync();

            await _questionRepository.SaveChangesAsync();

            await _choiceRepository.SaveChangesAsync();


            var newChoice = new ChoiceUpdateRequest {
                Text = "Pytanie na sniadanie"
            };

            var result = await _choiceController.Put(1, 2, 3, newChoice);

            //Assert
            Assert.True(result.Value.Text == newChoice.Text);
        }
Exemplo n.º 2
0
    public async Task <ObjectResult <ChoiceResponse> > Update(int quizId, int questionId, int choiceId, ChoiceUpdateRequest request)
    {
        var choice = await _choiceRepository.GetChoice(questionId, choiceId);

        var question = await _questionRepository.GetQuestion(quizId, questionId);

        if (choice == null || question == null)
        {
            return(new ObjectResult <ChoiceResponse> {
                Errors = new[] { "Failed to find the choice to update" }
            });
        }

        _choiceRepository.Update(choice);

        choice = _mapper.Map <Choice>(request);

        if (await _choiceRepository.SaveChangesAsync())
        {
            _cache.Set($"Choice {choice.Id}", choice);
            return(new ObjectResult <ChoiceResponse> {
                Object = _mapper.Map <ChoiceResponse>(choice), Found = true, Success = true
            });
        }

        return(new ObjectResult <ChoiceResponse> {
            Found = true, Errors = new[] { "Action didn't affect any rows" }
        });
    }
Exemplo n.º 3
0
    public async Task <ActionResult <ChoiceResponse> > Put(int quizId, int questionId, int choiceId, ChoiceUpdateRequest request)
    {
        var updateResponse = await _choiceService.Update(quizId, questionId, choiceId, request);

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