Beispiel #1
0
        public async Task <ActionResult> DetailQuestionAsync(Guid id)
        {
            if (id == null)
            {
                return(RedirectToAction("Quizzes"));
            }

            var question = await questionRepo.GetQuestionByIdAsync(id);

            var choices = await choiceRepo.GetChoicesAsync(id);

            var answer = await answerRepo.GetAnswerByQuestionAsync(id);

            AddQuestion_VM vm = new AddQuestion_VM()
            {
                QuestionText    = question.QuestionText,
                QuestionAnswer  = answer.AnswerText,
                QuestionChoiceA = choices.Count() < 2 ? null : choices.ElementAt(0).ChoiceText,
                QuestionChoiceB = choices.Count() < 3 ? null : choices.ElementAt(1).ChoiceText,
                QuestionChoiceC = choices.Count() < 4 ? null : choices.ElementAt(2).ChoiceText,
                QuestionId      = question.QuestionId,
                QuizId          = question.QuizId
            };

            return(View(vm));
        }
Beispiel #2
0
        // GET: Question/Create
        public async Task <ActionResult> Create(Guid Id)
        {
            Quiz quiz = await quizRepo.GetQuizByIdAsync(Id);

            ViewBag.Quiz = quiz;
            AddQuestion_VM vm = new AddQuestion_VM();

            vm.QuizId = quiz.QuizID;
            return(View(vm));
        }
Beispiel #3
0
        public async Task <ActionResult> CreateQuestionAsync(Guid Id)
        {
            try
            {
                if (Id == null)
                {
                    return(RedirectToAction("Quizzes"));
                }

                Quiz quiz = await quizRepo.GetQuizByIdAsync(Id);

                ViewBag.Quiz = quiz;
                AddQuestion_VM vm = new AddQuestion_VM();
                vm.QuizId = quiz.QuizID;
                return(View(vm));
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.InnerException.Message);
                return(Redirect("/Error/400"));
            }
        }
Beispiel #4
0
        public async Task <IActionResult> CreateAsync(IFormCollection collection, AddQuestion_VM vm)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    throw new Exception("Validation Error");
                }
                //add question
                Question question = new Question()
                {
                    QuizId       = vm.QuizId,
                    QuestionId   = Guid.NewGuid(),
                    QuestionText = vm.QuestionText
                };

                var result = questionRepo.AddQuestion(question);
                if (result == null)
                {
                    return(Redirect("/Error/400"));
                }

                //add answer
                Answer answer = new Answer()
                {
                    AnswerID   = Guid.NewGuid(),
                    AnswerText = vm.QuestionAnswer,
                    QuestionID = question.QuestionId
                };
                var resultAnswer = answerRepo.AddAnswer(answer);
                if (resultAnswer == null)
                {
                    return(Redirect("/Error/400"));
                }


                //add choice 1
                Choice choiceA = new Choice()
                {
                    ChoiceID   = Guid.NewGuid(),
                    ChoiceText = vm.QuestionChoiceA,
                    QuestionID = question.QuestionId
                };
                var resultChoiceA = choiceRepo.AddChoice(choiceA);
                if (resultChoiceA == null)
                {
                    return(Redirect("/Error/400"));
                }
                //add choice 2
                Choice choiceB = new Choice()
                {
                    ChoiceID   = Guid.NewGuid(),
                    ChoiceText = vm.QuestionChoiceB,
                    QuestionID = question.QuestionId
                };
                var resultChoiceB = choiceRepo.AddChoice(choiceB);
                if (resultChoiceB == null)
                {
                    return(Redirect("/Error/400"));
                }
                //add choice 2
                Choice choiceC = new Choice()
                {
                    ChoiceID   = Guid.NewGuid(),
                    ChoiceText = vm.QuestionChoiceC,
                    QuestionID = question.QuestionId
                };
                var resultChoiceC = choiceRepo.AddChoice(choiceC);
                if (resultChoiceC == null)
                {
                    return(Redirect("/Error/400"));
                }
                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception ex)
            {
                Debug.WriteLine("unable to create" + ex.Message);
                ModelState.AddModelError("", "Create mislukt." + ex.Message);
                return(View(vm));
            }
        }