public Task AddQuestionsToQuiz(PostQuizQuestionRequestModel quizQuestionRequest) { var questions = _context.Questions.Where(x => quizQuestionRequest.QuestionIds.Contains(x.Id)); using (DbContextTransaction dbTran = _context.Database.BeginTransaction()) { try { foreach (var question in questions) { var optionsData = _context.Questions.FirstOrDefault(x => x.Id == question.Id)?.Options; var quest = new Question { Name = question.Name, QuizId = quizQuestionRequest.QuizId, IsActive = question.IsActive }; _context.Questions.Add(quest); _context.SaveChanges(); var options = optionsData.ToList()?.Select(x => { x.QuestionId = quest.Id; return(x); }); _context.Options.AddRange(options); _context.SaveChanges(); } dbTran.Commit(); } catch (DbEntityValidationException ex) { dbTran.Rollback(); throw; } } return(Task.FromResult(0)); }
public IHttpActionResult AddQuestionsToQuiz([FromBody] PostQuizQuestionRequestModel quizQuestionRequest) { var response = _questionQueryServices.AddQuestionsToQuiz(quizQuestionRequest); return(Ok(response)); }