示例#1
0
        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));
        }