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); }
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" } }); }
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)); }