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