public ActionResult Edit(EditQuizViewModel vm) { if (ModelState.IsValid) { Quiz quiz; if (_quizService.GetAll().Any(x => x.Name == vm.Quiz.Name && x.Id != vm.Quiz.QuizId)) { ModelState.AddModelError("Name", "Name already exists"); quiz = _quizService.Get(vm.Quiz.QuizId); vm = quiz.ToEditQuizViewModel(_questionService, _answerService, _quizCategoryService); return(PartialView("_EditQuizPartial", vm)); } if (!String.IsNullOrEmpty(vm.NewCategory)) { if (_quizCategoryService.Exists(vm.NewCategory)) { ModelState.AddModelError("NewCategory", "Category already exists"); quiz = _quizService.Get(vm.Quiz.QuizId); vm = quiz.ToEditQuizViewModel(_questionService, _answerService, _quizCategoryService); return(PartialView("_EditQuizPartial", vm)); } vm.SelectedCategory = _quizCategoryService.InsertByName(vm.NewCategory).Id; } quiz = vm.ToModel(_quizService, _quizCategoryService); _quizService.Update(quiz); if (quiz.Questions.Count > 1) { _questionService.SaveOrder(quiz.Id, vm.QuestionOrder); } ModelState.Clear(); vm = _quizService.Get(quiz.Id).ToEditQuizViewModel(_questionService, _answerService, _quizCategoryService); return(PartialView("_EditQuizPartial", vm)); } return(PartialView("_EditQuizPartial", vm)); }
public ActionResult Edit(EditQuizViewModel vm) { if (ModelState.IsValid) { Quiz quiz; if (_quizService.GetAll().Any(x => x.Name == vm.Quiz.Name && x.Id != vm.Quiz.QuizId)) { ModelState.AddModelError("Name", "Name already exists"); } if (!String.IsNullOrEmpty(vm.NewCategory)) { if (_quizCategoryService.Exists(vm.NewCategory)) { ModelState.AddModelError("NewCategory", "Category already exists"); } vm.SelectedCategory = _quizCategoryService.InsertByName(vm.NewCategory).Id; } if (!ModelState.IsValid) { quiz = _quizService.Get(vm.Quiz.QuizId); vm = _modelConverter.ToEditQuizViewModel(quiz); return(PartialView("_EditQuizPartial", vm)); } quiz = _viewModelConverter.ToQuizModel(vm); _quizService.Update(quiz); _questionService.SaveOrder(quiz, vm.QuestionOrder); ModelState.Clear(); vm = _modelConverter.ToEditQuizViewModel(_quizService.Get(quiz.Id)); _userActivityService.Add(User.Identity.Name, ActivityItem.Quiz, ActivityAction.Edit, quiz.Id); return(PartialView("_EditQuizPartial", vm)); } return(PartialView("_EditQuizPartial", vm)); }