Esempio n. 1
0
        public async Task <IActionResult> AddQuizToGroup(int groupId, [FromBody] QuizResource quizResource)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.GetUserAsync(User);

                var quiz = _mapper.Map <QuizResource, Quiz>(quizResource);

                if (await _quizService.QuizExistsAsync(quiz))
                {
                    return(BadRequest(new ApiResponse(
                                          $"Quiz group with title '{quiz.Name}' already exists.", false
                                          )));
                }

                if (!await _quizGroupService.QuizGroupExistsAsync(groupId))
                {
                    return(BadRequest(new ApiResponse(
                                          "Group does not exist.", false
                                          )));
                }

                var existingTags = await _tagService.UpdateTagsAsync(quizResource.Tags);

                // Add the tags
                foreach (var tag in existingTags)
                {
                    quiz.Tags.Add(new QuizzesTags()
                    {
                        Quiz  = quiz,
                        TagId = tag.Id
                    });
                }

                // Add creation stamps
                quiz.CreatedOn   = DateTime.Now;
                quiz.CreatorId   = user.Id;
                quiz.CreatorName = user.UserName;
                quiz.GroupId     = groupId;

                await _quizService.AddQuizAsync(quiz);

                return(Ok(new ApiResponse(
                              _mapper.Map <Quiz, QuizResource>(quiz),
                              "You have successfully added a new quiz.")));
            }

            return(BadRequest(new ApiResponse(ModelState)));
        }
        public async Task <IActionResult> AddQuiz([FromBody] QuizResource quizResource)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.GetUserAsync(User);

                var quiz = _mapper.Map <QuizResource, Quiz>(quizResource);

                if (await _quizService.QuizExistsAsync(quiz))
                {
                    return(ApiBadRequest($"Quiz group with title '{quiz.Name}' already exists."));
                }

                var existingTags = await _tagService.UpdateTagsAsync(quizResource.Tags);

                // Add the tags
                foreach (var tag in existingTags)
                {
                    System.Console.WriteLine(tag.Id);
                    quiz.Tags.Add(new QuizzesTags()
                    {
                        Quiz  = quiz,
                        TagId = tag.Id
                    });
                }

                // Add creation stamps
                quiz.CreatedOn   = DateTime.Now;
                quiz.CreatorId   = user.Id;
                quiz.CreatorName = user.UserName;

                await _quizService.AddQuizAsync(quiz);

                return(ApiOk(
                           _mapper.Map <Quiz, QuizResource>(quiz),
                           "You have successfully added a new quiz."
                           ));
            }

            return(ApiBadRequest(ModelState));
        }