Esempio n. 1
0
        public async Task <IActionResult> CreateAsync([FromBody] QuizCreationViewModel quizViewModel)
        {
            var resultQuizCreated = await _quizAppService.CreateAsync(quizViewModel);

            if (resultQuizCreated.StatusCode == Application.Core.StatusCode.BAD_REQUEST)
            {
                return(BadRequest(resultQuizCreated.Errors));
            }

            return(CreatedAtRoute("", quizViewModel));
        }
Esempio n. 2
0
        public async Task <IActionResult> UpdateAsync(int quizId, [FromBody] QuizCreationViewModel quizViewModel)
        {
            var resultUpdatedQuiz = await _quizAppService.UpdateAsync(quizId, quizViewModel);

            if (resultUpdatedQuiz.StatusCode == Application.Core.StatusCode.BAD_REQUEST)
            {
                return(BadRequest(resultUpdatedQuiz.Errors));
            }

            if (resultUpdatedQuiz.StatusCode == Application.Core.StatusCode.NOT_FOUND)
            {
                return(NotFound(resultUpdatedQuiz.Errors));
            }

            return(Ok());
        }
        public async Task <ResultResponse> UpdateAsync(int id, QuizCreationViewModel quizCreationViewModel)
        {
            var quiz      = _mapper.Map <Quiz>(quizCreationViewModel);
            var questions = new List <QuizQuestion>(quizCreationViewModel.Questions.Count());

            foreach (var questionViewModel in quizCreationViewModel.Questions)
            {
                var alternatives = new List <Alternative>(4);

                foreach (var alternativeViewModel in questionViewModel.Alternatives)
                {
                    alternatives.Add(Alternative.Parse(alternativeViewModel.description, alternativeViewModel.isCorrect));
                }

                questions.Add(new QuizQuestion(questionViewModel.Description, alternatives));
            }

            var businessResult = await _quizService.UpdateAsync(id, quiz, questions);

            return(new ResultResponse(businessResult, Operation.CREATE));
        }