예제 #1
0
        public async Task Post_Creates_Choice()
        {
            //Arrange
            _quizRepository.Empty <Quiz>();

            var tempQuiz = new Quiz()
            {
                Id = 101, Name = "Elo", DateAdded = DateTime.Now
            };
            var tempQuestion = new Question()
            {
                Id = 102, QuizId = 101, Text = "Asd"
            };

            _quizRepository.Add(tempQuiz);
            _questionRepository.Add(tempQuestion);

            await _quizRepository.SaveChangesAsync();

            await _questionRepository.SaveChangesAsync();

            var choice = new ChoiceCreateRequest {
                Text = "asd", IsRight = true
            };
            //Act
            var result = await _choiceController.Post(101, 102, choice);

            //Assert
            Assert.IsType <CreatedAtActionResult>(result.Result);

            var getResult = await _choiceController.Get(101, 102);

            //Assert
            Assert.True(getResult.Value.Length > 0);
        }
예제 #2
0
    public async Task <ObjectResult <ChoiceResponse> > Create(int quizId, int questionId, ChoiceCreateRequest request)
    {
        var question = await _questionRepository.GetQuestion(quizId, questionId);

        if (question == null)
        {
            return(new ObjectResult <ChoiceResponse> {
                Errors = new[] { "Didn't find the question" }
            });
        }

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

        if (choice != null)
        {
            choice.QuestionId = question.Id;

            _choiceRepository.Add(choice);
        }

        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" }
        });
    }
예제 #3
0
    public async Task <ActionResult <ChoiceResponse> > Post(int quizId, int questionId, ChoiceCreateRequest request)
    {
        var createResponse = await _choiceService.Create(quizId, questionId, request);

        if (!createResponse.Success)
        {
            return(BadRequest(createResponse.Errors));
        }

        return(CreatedAtAction(nameof(Get), createResponse.Object));
    }