public RoundViewModelTest()
        {
            _quizzes            = GenerateQuizzesList();
            _selectedQuizIndex  = _random.Next(_quizzes.Count);
            _selectedQuiz       = _quizzes[_selectedQuizIndex];
            _selectedRoundIndex = _random.Next(_selectedQuiz.QuizRounds.Count);
            _selectedRound      = _selectedQuiz.QuizRounds[_selectedRoundIndex];

            _quizServiceMock = new Mock <IQuizService>();
            _quizServiceMock.Setup(qS => qS.GetAllQuizzes()).ReturnsAsync(_quizzes);
            _quizServiceMock.Setup(qS => qS.DeleteQuiz(It.IsAny <int>())).ReturnsAsync(true);
            _quizServiceMock.Setup(qS => qS.EditQuiz(It.IsAny <int>(), It.IsAny <Quiz>())).ReturnsAsync(true);
            _roundServiceMock = new Mock <IRoundService>();
            _roundServiceMock.Setup(rS => rS.EditRound(It.IsAny <int>(), It.IsAny <Round>())).ReturnsAsync(true);
            _navigationServiceExMock = new Mock <INavigationServiceEx>();
            _navigationServiceExMock.Setup(nS => nS.GoBack()).Returns(true);
            _navigationServiceExMock.Setup(nS => nS.Navigate(It.IsAny <string>(), It.IsAny <object>(), It.IsAny <NavigationTransitionInfo>())).Returns(true);
            _messengerCacheMock = new Mock <IMessengerCache>();
            _messengerCacheMock.Setup(mC => mC.CachedSelectedQuiz).Returns(_selectedQuiz);
            _messengerCacheMock.Setup(mC => mC.CachedSelectedRound).Returns(_selectedRound);

            _sender = new QuizzenViewModel(_quizServiceMock.Object, _navigationServiceExMock.Object);
            _sender.EditQuizCommand.Execute(_selectedQuizIndex);
            _intermediate = new EditQuizViewModel(_quizServiceMock.Object, _navigationServiceExMock.Object, _messengerCacheMock.Object);
            _intermediate.NavigateToRoundCommand.Execute(_selectedRound);
            _sut = new RoundViewModel(_roundServiceMock.Object, _navigationServiceExMock.Object, _messengerCacheMock.Object);
        }
Exemplo n.º 2
0
        public IActionResult Edit(int id, EditQuizViewModel model)
        {
            var quiz = _dbContext.Quizzes
                       .Include(x => x.Questions)
                       .FirstOrDefault(x => x.Id == id);

            if (quiz == null)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                quiz.Title       = model.Title;
                quiz.Description = model.Description;

                _dbContext.Update(quiz);
                _dbContext.SaveChanges();

                return(RedirectToAction("Show", new { id = id }));
            }


            return(View(model));
        }
Exemplo n.º 3
0
        public ActionResult AddQuestions(EditQuizViewModel model)
        {
            Question question = new Question();

            question.Text            = model.NewQuestion.Text;
            question.CorrectAnswerId = null;
            question.QuizId          = db.Quizes.Where(x => x.vId == model.QuizvId).First().Id;
            db.Questions.Add(question);
            db.SaveChanges();

            foreach (var answer in model.NewQuestion.Answers)
            {
                var a = new QuestionOption
                {
                    Text       = answer.Text,
                    QuestionId = question.Id
                };
                db.QuestionOptions.Add(a);
                db.SaveChanges();

                if (answer.IsCorrect)
                {
                    question.CorrectAnswerId = a.Id;
                }
                question.PossibleAnswers.Add(a);

                db.SaveChanges();
            }

            return(AddQuestions(model.QuizvId));
        }
Exemplo n.º 4
0
        public IActionResult OnPostDeleteQuiz(EditQuizViewModel model)
        {
            //get quiz by supplied ID and check if this User is its owner
            var quiz = _context.Quizzes.Include(x => x.Questions)
                       .Include("Questions.Options").FirstOrDefault(x => x.Id == model.ID);

            if (quiz == null)
            {
                return(NotFound());
            }

            _context.Quizzes.Attach(quiz);

            quiz.Questions.ForEach(qu => _context.Options.RemoveRange(qu.Options));
            _context.Questions.RemoveRange(quiz.Questions);
            _context.Quizzes.Remove(quiz);


            if (_context.SaveChanges() > 0)
            {
                return(Redirect("~/admin/quizzes"));
            }
            else
            {
                return(StatusCode(500));
            }
        }
Exemplo n.º 5
0
        public PartialViewResult AddQuestions(int vId)
        {
            Quiz q = db.Quizes.Include(x => x.Questions.Select(y => y.PossibleAnswers)).Where(x => x.vId == vId).First();
            EditQuizViewModel vm = new EditQuizViewModel
            {
                QuizvId     = q.vId,
                QuizName    = q.Name,
                NewQuestion = null,
                Questions   = q.Questions.Select(x => new EditQuizViewModel.QuestionInfo
                {
                    Id      = x.Id,
                    Text    = x.Text,
                    Answers = x.PossibleAnswers.Select(z => new EditQuizViewModel.QuestionInfo.AnswerInfo
                    {
                        Id        = z.Id,
                        IsCorrect = z.Id == x.CorrectAnswerId,
                        Text      = z.Text
                    }).ToList()
                }).OrderByDescending(x => x.Id).ToList()
            };

            vm.NewQuestion.Text = "";

            return(PartialView("_AddQuizQuestionPartial", vm));
        }
Exemplo n.º 6
0
        public ActionResult EditQuiz(int id)
        {
            if (id < 1)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            EditQuizViewModel viewModel = this.service.GetEditViewModel(id);

            return(this.View(viewModel));
        }
Exemplo n.º 7
0
        public async Task <ActionResult> EditQuiz(EditQuizViewModel model)
        {
            //get quiz by supplied ID and check if this User is its owner
            var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
            var quiz   = UserHasRights() ? QuizzesService.Instance.GetQuizForAdmin(model.ID) : QuizzesService.Instance.GetUserQuiz(userId, model.ID);

            if (quiz == null)
            {
                return(NotFound());
            }

            //check if Model is valid
            if (!ModelState.IsValid)
            {
                model.PageInfo = new PageInfo()
                {
                    PageTitle       = "Modify Quiz",
                    PageDescription = "Modify this quiz."
                };

                return(View(model));
            }

            //populate quiz from Model
            //quiz.OwnerID = User.Identity.GetUserId(); //<- Do not change owner of Quiz on update. Reason: if the Super Admin updated the quiz, it will no longer show in original owner
            quiz.Name        = model.Name;
            quiz.Description = model.Description;

            //quiz type should not be changed because this will affect the display of questions
            //quiz.QuizType = model.SelectedQuizType;

            quiz.EnableQuizTimer = model.EnableQuizTimer;

            if (quiz.EnableQuizTimer)
            {
                quiz.TimeDuration        = new TimeSpan(model.Hours, model.Minutes, 0);
                quiz.EnableQuestionTimer = model.EnableQuestionTimer;
            }
            else
            {
                quiz.TimeDuration        = new TimeSpan(0, 0, 0);
                quiz.EnableQuestionTimer = false;
            }
            quiz.ModifiedOn = DateTime.Now;

            if (await QuizzesService.Instance.UpdateQuiz(quiz))
            {
                //now redirect to Quiz listing Page
                return(RedirectToAction("Index"));
            }
            else
            {
                return(StatusCode(500));
            }
        }
Exemplo n.º 8
0
        public void Constructor_ShouldLoadSelectedQuizAndAllQuizzes()
        {
            //Act
            var sut = new EditQuizViewModel(_quizServiceMock.Object, _navigationServiceExMock.Object, _messengerCacheMock.Object);

            //Assert
            Assert.Equal(_selectedQuiz, sut.SelectedQuiz);
            Assert.Equal(_quizzes, sut.AllQuizzes);
            _quizServiceMock.Verify(qS => qS.GetAllQuizzes(), Times.Exactly(3)); /*Normally it should be once but the _sender constructor in this test's constructor calls the function one time,
                                                                                  *              the _sut constructor in this test's constructor calls it a second time and this test calls it a third time*/
        }
Exemplo n.º 9
0
        public ActionResult EditQuiz([Bind(Include = "Id,Title")] EditQuizBindingModel model)
        {
            if (ModelState.IsValid)
            {
                this.service.EditQuiz(model);
                return(this.RedirectToAction("PreviewQuiz", "Quizzes", new { area = "Admin", id = model.Id }));
            }
            EditQuizViewModel viewModel = this.service.GetEditViewModel(model.Id);

            return(this.View(viewModel));
        }
        /// <summary>
        /// Выполняет трансляцию DTO в модель редактирования теста.
        /// </summary>
        /// <param name="dto">DTO-объект теста.</param>
        /// <returns>Модель с описанием теста.</returns>
        private EditQuizViewModel TranslateEditQuizModel(QuizDto dto)
        {
            var model = new EditQuizViewModel
            {
                QuizId        = dto.Id,
                Title         = dto.Title,
                TotalTimeSecs = dto.TotalTimeSecs,
                QuizBlocks    = dto.QuizBlocks.Select(TranslateQuizBlockModel).ToList()
            };

            return(model);
        }
Exemplo n.º 11
0
        public ActionResult Add(EditQuizViewModel input)
        {
            if (!ModelState.IsValid)
            {
                return(View("Edit", input));
            }

            var quiz = input.MapTo <Quiz>();

            RavenSession.Store(quiz);

            return(RedirectToAction("Details", new { id = quiz.Id.ToIntId() }));
        }
Exemplo n.º 12
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            quizParams = (QuizParams)e.Parameter; // get parameter
            Frame rootFrame = Window.Current.Content as Frame;

            if (quizParams != null)
            {
                ViewModel = new EditQuizViewModel();
            }

            ViewModel.Initialize(quizParams);
            DataContext = ViewModel;
        }
Exemplo n.º 13
0
 // GET: Edit Quiz
 public ActionResult EditQuiz(EditQuizViewModel model, string QuizName)
 {
     if (model.Id == 0)
     {
         model.CurrentQuiz = quizViewModel.GetQuizByTitle(QuizName);
         model.SetQuizVariables(model.CurrentQuiz);
     }
     else
     {
         model.SaveQuizDetails();
     }
     model.Categories = quizViewModel.Categories;
     return(View(model));
 }
Exemplo n.º 14
0
        public void Edit_Post()
        {
            var c = _controllerProvider.CreateQuizzesController();
            EditQuizViewModel model = _mockRepository.QuizService.Get(1).ToEditQuizViewModel(_mockRepository.QuestionService, _mockRepository.AnswerService, _mockRepository.QuizCategoryService);

            model.Quiz.Name = "test";

            var result = c.Edit(model) as PartialViewResult;

            model = result.Model as EditQuizViewModel;

            Assert.IsNotNull(model);
            Assert.AreEqual("test", model.Quiz.Name);
        }
Exemplo n.º 15
0
        public void Edit_Post()
        {
            var c = ControllerProvider.CreateQuizzesController();
            EditQuizViewModel model = Mocks.ModelConverter.ToEditQuizViewModel(Mocks.QuizService.Get(1));

            model.Quiz.Name = "test";

            var result = c.Edit(model) as PartialViewResult;

            model = result.Model as EditQuizViewModel;

            Assert.IsNotNull(model);
            Assert.AreEqual("test", model.Quiz.Name);
        }
Exemplo n.º 16
0
 //GET: Edit Questions
 public ActionResult EditQuestions(EditQuizViewModel model, int QuestionId, string QuizName)
 {
     if (model.CurrentQuestion == null)
     {
         model.CurrentQuiz = quizViewModel.GetQuizByTitle(QuizName);
         model.SetQuestionVariables(QuestionId);
     }
     else
     {
         model.SaveQuestionDetails();
         return(RedirectToAction("EditQuiz", new { QuizName = model.CurrentQuiz.Title }));
     }
     return(View(model));
 }
Exemplo n.º 17
0
        public ActionResult EditQuiz(int ID)
        {
            //get quiz by supplied ID and check if this User is its owner
            var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
            var quiz   = UserHasRights() ? QuizzesService.Instance.GetQuizForAdmin(ID) : QuizzesService.Instance.GetUserQuiz(userId, ID);

            if (quiz == null)
            {
                return(NotFound());
            }

            EditQuizViewModel model = new EditQuizViewModel();

            model.PageInfo = new PageInfo()
            {
                PageTitle       = "Modify Quiz",
                PageDescription = "Modify this quiz."
            };

            model.ID          = quiz.ID;
            model.Name        = quiz.Name;
            model.Description = quiz.Description;

            model.QuizTypes = new List <QuizType>()
            {
                QuizType.Text, QuizType.Image
            };
            model.SelectedQuizType = quiz.QuizType;

            model.EnableQuizTimer = quiz.EnableQuizTimer;

            if (model.EnableQuizTimer)
            {
                model.Hours   = quiz.TimeDuration.Hours;
                model.Minutes = quiz.TimeDuration.Minutes;

                model.EnableQuestionTimer = quiz.EnableQuestionTimer;
            }
            else
            {
                model.Hours   = 0;
                model.Minutes = 0;

                model.EnableQuestionTimer = false;
            }

            model.NoOfQuestions = quiz.Questions.Count;

            return(View(model));
        }
Exemplo n.º 18
0
        public IActionResult OnPost(EditQuizViewModel model)
        {
            //get quiz by supplied ID and check if this User is its owner
            var quiz = _context.Quizzes.FirstOrDefault(x => x.Id == model.ID);

            if (quiz == null)
            {
                return(NotFound());
            }

            //check if Model is valid
            if (!ModelState.IsValid)
            {
                QuizViewModel = model;
                return(Page());
            }

            //populate quiz from Model
            //quiz.OwnerID = User.Identity.GetUserId(); //<- Do not change owner of Quiz on update. Reason: if the Super Admin updated the quiz, it will no longer show in original owner
            quiz.Name        = model.Name;
            quiz.Description = model.Description;

            //quiz type should not be changed because this will affect the display of questions
            //quiz.QuizType = model.SelectedQuizType;

            quiz.EnableQuizTimer = model.EnableQuizTimer;

            if (quiz.EnableQuizTimer)
            {
                quiz.TimeDuration        = new TimeSpan(model.Hours, model.Minutes, 0);
                quiz.EnableQuestionTimer = model.EnableQuestionTimer;
            }
            else
            {
                quiz.TimeDuration        = new TimeSpan(0, 0, 0);
                quiz.EnableQuestionTimer = false;
            }

            _context.Entry(quiz).State = Microsoft.EntityFrameworkCore.EntityState.Modified;

            if (_context.SaveChanges() > 0)
            {
                return(Redirect("~/admin/quizzes"));
            }
            else
            {
                return(StatusCode(500));
            }
        }
Exemplo n.º 19
0
        public EditQuizViewModel GetEditViewModel(int id)
        {
            Quiz quiz = this.GetQuiz(id);

            if (quiz == null)
            {
                throw new ArgumentNullException(nameof(id), "There is no Quiz with such Id.");
            }
            EditQuizViewModel viewModel = Mapper.Instance
                                          .Map <Quiz, EditQuizViewModel>(quiz);

            viewModel.QuestionsInQuiz     = this.SearchQuestions(quiz.Title).ToList();
            viewModel.UnassignedQuestions = this.SearchQuestions("Unassigned").ToList();

            return(viewModel);
        }
Exemplo n.º 20
0
        public EditQuizViewModel ToEditQuizViewModel(Quiz quiz)
        {
            var vm = new EditQuizViewModel();


            vm.Quiz = ToQuizViewModel(quiz, true);

            var sortedQuestions = quiz.Questions.AsQueryable().AsNoTracking().OrderBy(x => x.OrderId).Select(x => x.Id);

            vm.QuestionOrder    = string.Join(",", sortedQuestions);
            vm.Categories       = _quizCategorytService.GetCategoriesAsSelectList();
            vm.SelectedCategory = quiz.Category.Id;

            vm.EstimatedTime = (uint)quiz.Questions.Sum(x => x.EstimatedTime);

            return(vm);
        }
Exemplo n.º 21
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));
        }
Exemplo n.º 22
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");
                }
                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));
        }
Exemplo n.º 23
0
        public ActionResult Edit(int id, EditQuizViewModel input)
        {
            if (!ModelState.IsValid)
            {
                return(View("Edit", input));
            }

            var quiz = RavenSession.Load <Quiz>(id);

            if (quiz == null)
            {
                return(HttpNotFound());
            }

            input.MapPropertiesToInstance(quiz);

            RavenSession.Store(quiz);

            return(RedirectToAction("Details", new { id = quiz.Id.ToIntId() }));
        }
Exemplo n.º 24
0
        public IActionResult Edit(int id)
        {
            var quiz = _dbContext.Quizzes
                       .Include(x => x.Questions)
                       .FirstOrDefault(x => x.Id == id);

            if (quiz == null)
            {
                return(NotFound());
            }

            var model = new EditQuizViewModel
            {
                Id          = quiz.Id,
                Title       = quiz.Title,
                Description = quiz.Description
            };

            return(View(model));
        }
Exemplo n.º 25
0
        public async Task <ActionResult> DeleteQuiz(EditQuizViewModel model)
        {
            //get quiz by supplied ID and check if this User is its owner
            var quiz = UserHasRights() ? QuizzesService.Instance.GetQuizForAdmin(model.ID) : QuizzesService.Instance.GetUserQuiz(User.Identity.GetUserId(), model.ID);

            if (quiz == null)
            {
                return(HttpNotFound());
            }

            quiz.ModifiedOn = DateTime.Now;

            if (await QuizzesService.Instance.DeleteQuiz(quiz))
            {
                //now redirect to Quiz listing Page
                return(RedirectToAction("Index"));
            }
            else
            {
                return(new HttpStatusCodeResult(500));
            }
        }
Exemplo n.º 26
0
        public static EditQuizViewModel ToEditQuizViewModel(this Quiz quiz,
                                                            IQuestionService questions,
                                                            IAnswerService answers,
                                                            IQuizCategoryService categories)
        {
            var vm = new EditQuizViewModel();


            vm.Quiz = quiz.ToQuizViewModel(questions, answers, true);



            var sortedQuestions = quiz.Questions.AsQueryable().AsNoTracking().OrderBy(x => x.OrderId).Select(x => x.Id);

            vm.QuestionOrder    = string.Join(",", sortedQuestions);
            vm.Categories       = categories.GetCategoriesAsSelectList();
            vm.SelectedCategory = quiz.Category.Id;

            vm.EstimatedTime = (uint)quiz.Questions.Sum(x => x.EstimatedTime);

            return(vm);
        }
Exemplo n.º 27
0
        public static Quiz ToModel(this EditQuizViewModel vm, IQuizService quizService, IQuizCategoryService quizCategoryService)
        {
            var model = quizService.Get(vm.Quiz.QuizId);

            if (!String.IsNullOrEmpty(vm.NewCategory))
            {
                model.Category    = quizCategoryService.InsertByName(vm.NewCategory);
                model.Category.Id = model.Category.Id;
            }
            else
            {
                model.Category    = quizCategoryService.Get(vm.SelectedCategory);
                model.Category.Id = vm.SelectedCategory;
            }

            model.Summary     = vm.Quiz.Summary;
            model.Name        = vm.Quiz.Name;
            model.IsTimeable  = vm.Quiz.IsTimeable;
            model.Locked      = vm.Quiz.Locked;
            model.AllowPoints = vm.Quiz.AllowPoints;

            return(model);
        }
Exemplo n.º 28
0
        public async Task <ActionResult> DeleteQuiz(EditQuizViewModel model)
        {
            //get quiz by supplied ID and check if this User is its owner
            var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
            var quiz   = UserHasRights() ? QuizzesService.Instance.GetQuizForAdmin(model.ID) : QuizzesService.Instance.GetUserQuiz(userId, model.ID);

            if (quiz == null)
            {
                return(NotFound());
            }

            quiz.ModifiedOn = DateTime.Now;

            if (await QuizzesService.Instance.DeleteQuiz(quiz))
            {
                //now redirect to Quiz listing Page
                return(RedirectToAction("Index"));
            }
            else
            {
                return(StatusCode(500));
            }
        }
Exemplo n.º 29
0
        public IActionResult OnGet(int quizId)
        {
            QuizId = quizId;

            var quiz = _context.Quizzes.Include(x => x.Questions).FirstOrDefault(x => x.Id == quizId);

            if (quiz == null)
            {
                return(NotFound());
            }

            QuizViewModel = new EditQuizViewModel();

            QuizViewModel.ID          = quiz.Id;
            QuizViewModel.Name        = quiz.Name;
            QuizViewModel.Description = quiz.Description;

            QuizViewModel.EnableQuizTimer = quiz.EnableQuizTimer;

            if (QuizViewModel.EnableQuizTimer)
            {
                QuizViewModel.Hours   = quiz.TimeDuration.Hours;
                QuizViewModel.Minutes = quiz.TimeDuration.Minutes;

                QuizViewModel.EnableQuestionTimer = quiz.EnableQuestionTimer;
            }
            else
            {
                QuizViewModel.Hours               = 0;
                QuizViewModel.Minutes             = 0;
                QuizViewModel.EnableQuestionTimer = false;
            }

            QuizViewModel.NoOfQuestions = quiz.Questions.Count;

            return(Page());
        }
Exemplo n.º 30
0
        public async Task <IActionResult> Edit(int?id)
        {
            if (!id.HasValue)
            {
                return(BadRequest(Constants.ErrorMessages.BadRequest));
            }

            var quiz = await _quizRepository.GetById(id);

            if (quiz == null)
            {
                return(NotFound(Constants.ErrorMessages.NotFound));
            }

            var questions = await _questionRepository.GetByQuizId(id);

            var model = new EditQuizViewModel
            {
                Quiz      = quiz,
                Questions = questions
            };

            return(View(model));
        }