public ActionResult Create(
            [Bind(Include = "QuizItemId,Question," +
                            "AnswerAlternative1,AnswerAlternative2," +
                            "AnswerAlternative3,AnswerAlternative4," +
                            "IsAnswerAlternative1Correct,IsAnswerAlternative2Correct," +
                            "IsAnswerAlternative3Correct,IsAnswerAlternative4Correct")]
            QuizItemQuestionViewModel model)
        {
            if (ModelState.IsValid == false)
            {
                LoadRelationshipProperties(model);
                return(View(model));
            }

            var quizItemQuestion = new QuizItemQuestion
            {
                QuizItemId                  = model.QuizItemId,
                Created                     = DateTime.UtcNow,
                Question                    = model.Question,
                AnswerAlternative1          = model.AnswerAlternative1,
                AnswerAlternative2          = model.AnswerAlternative2,
                AnswerAlternative3          = model.AnswerAlternative3,
                AnswerAlternative4          = model.AnswerAlternative4,
                IsAnswerAlternative1Correct = model.IsAnswerAlternative1Correct,
                IsAnswerAlternative2Correct = model.IsAnswerAlternative2Correct,
                IsAnswerAlternative3Correct = model.IsAnswerAlternative3Correct,
                IsAnswerAlternative4Correct = model.IsAnswerAlternative4Correct
            };

            _quizItemQuestionRepository.Add(quizItemQuestion);

            return(RedirectToAction("Index", new { model.QuizItemId }));
        }
        private QuizItemQuestionViewModel LoadRelationshipProperties(QuizItemQuestionViewModel model)
        {
            var quizItem = _quizItemRepository.Get(model.QuizItemId);

            model.QuizItemName = quizItem.Name;

            return(model);
        }
        public ActionResult Delete(int id)
        {
            if (id == 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var quizItemQuestion = _quizItemQuestionRepository.Get(id);

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

            var model = QuizItemQuestionViewModel.MapFromDataModel(quizItemQuestion);

            LoadRelationshipProperties(model);

            return(View(model));
        }
        public ActionResult Create(int quizItemId)
        {
            if (quizItemId == 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var quizItem = _quizItemRepository.Get(quizItemId);

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

            var model = new QuizItemQuestionViewModel {
                QuizItemId = quizItemId
            };

            LoadRelationshipProperties(model);

            return(View(model));
        }
        public ActionResult Edit(
            [Bind(Include = "Id,QuizItemId,Question," +
                            "AnswerAlternative1,AnswerAlternative2," +
                            "AnswerAlternative3,AnswerAlternative4," +
                            "IsAnswerAlternative1Correct,IsAnswerAlternative2Correct," +
                            "IsAnswerAlternative3Correct,IsAnswerAlternative4Correct")]
            QuizItemQuestionViewModel model)
        {
            if (ModelState.IsValid == false)
            {
                LoadRelationshipProperties(model);
                return(View(model));
            }

            var quizItemQuestion = _quizItemQuestionRepository.Get(model.Id);

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

            quizItemQuestion.Modified                    = DateTime.UtcNow;
            quizItemQuestion.Question                    = model.Question;
            quizItemQuestion.AnswerAlternative1          = model.AnswerAlternative1;
            quizItemQuestion.AnswerAlternative2          = model.AnswerAlternative2;
            quizItemQuestion.AnswerAlternative3          = model.AnswerAlternative3;
            quizItemQuestion.AnswerAlternative4          = model.AnswerAlternative4;
            quizItemQuestion.IsAnswerAlternative1Correct = model.IsAnswerAlternative1Correct;
            quizItemQuestion.IsAnswerAlternative2Correct = model.IsAnswerAlternative2Correct;
            quizItemQuestion.IsAnswerAlternative3Correct = model.IsAnswerAlternative3Correct;
            quizItemQuestion.IsAnswerAlternative4Correct = model.IsAnswerAlternative4Correct;

            _quizItemQuestionRepository.Update(quizItemQuestion);

            return(RedirectToAction("Index", new { model.QuizItemId }));
        }