Пример #1
0
        public async Task <ActionResult> DeleteQuestionAsync(string Id)
        {
            try
            {
                if (Id == null)
                {
                    return(RedirectToAction("Quizzes"));
                }

                Question question = await questionRepo.GetQuestionByIdAsync(Guid.Parse(Id));

                if (question == null)
                {
                    ModelState.AddModelError(String.Empty, "Not Found.");
                }

                Answer answer = await answerRepo.GetAnswerByQuestionAsync(question.QuestionId);

                if (answer == null)
                {
                    ModelState.AddModelError(String.Empty, "Not Found.");
                }

                IEnumerable <Choice> choices = await choiceRepo.GetChoicesAsync(question.QuestionId);

                if (choices == null)
                {
                    ModelState.AddModelError(String.Empty, "Not Found.");
                }

                EditQuestion_VM vm = new EditQuestion_VM()
                {
                    QuestionId       = question.QuestionId,
                    QuestionText     = question.QuestionText,
                    QuizId           = question.QuizId,
                    QuestionAnswerId = answer.AnswerID.ToString(),
                    QuestionAnswer   = answer.AnswerText,
                    ChoiceAId        = choices.Count() < 1 ? null : choices.ElementAt(0).ChoiceID.ToString(),
                    QuestionChoiceA  = choices.Count() < 1 ? null : choices.ElementAt(0).ChoiceText,
                    ChoiceBId        = choices.Count() < 2 ? null : choices.ElementAt(0).ChoiceID.ToString(),
                    QuestionChoiceB  = choices.Count() < 2 ? null : choices.ElementAt(1).ChoiceText,
                    ChoiceCId        = choices.Count() < 3 ? null : choices.ElementAt(0).ChoiceID.ToString(),
                    QuestionChoiceC  = choices.Count() < 3 ? null : choices.ElementAt(2).ChoiceText
                };

                return(View(vm));
            }
            catch (Exception ex)
            {
                Debug.WriteLine($"Delete error. {ex.Message}");
                ModelState.AddModelError("", "Delete actie mislukt." + ex.InnerException.Message);
                return(RedirectToAction(nameof(Quizzes)));
            }
        }
Пример #2
0
        public async Task <ActionResult> DeleteQuestionAsync(string Id, IFormCollection collection, EditQuestion_VM vm)
        {
            try
            {
                // TODO: Add update logic here
                if (Id == null)
                {
                    return(RedirectToAction("Quizzes"));
                }
                //delete question
                await questionRepo.DeleteQuestion(vm.QuestionId);

                //delete answers
                await answerRepo.DeleteAnswer(Guid.Parse(vm.QuestionAnswerId));

                //delete choices
                if (vm.QuestionChoiceA != null)
                {
                    await choiceRepo.DeleteChoice(Guid.Parse(vm.ChoiceAId));
                }
                if (vm.QuestionChoiceB != null)
                {
                    await choiceRepo.DeleteChoice(Guid.Parse(vm.ChoiceBId));
                }
                if (vm.QuestionChoiceC != null)
                {
                    await choiceRepo.DeleteChoice(Guid.Parse(vm.ChoiceCId));
                }

                return(RedirectToAction("Questions", new { id = vm.QuizId }));
            }
            catch (Exception ex)
            {
                Debug.WriteLine($"update error. {ex.Message}");
                ModelState.AddModelError("", "Update actie mislukt." + ex.InnerException.Message);
                return(View(vm));
            }
        }
Пример #3
0
        public async Task <ActionResult> EditQuestionAsync(Guid Id, IFormCollection collection, EditQuestion_VM vm)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    // TODO: Add update logic here
                    if (Id == null)
                    {
                        return(RedirectToAction("Quizzes"));
                    }

                    Question question = new Question()
                    {
                        QuizId       = vm.QuizId,
                        QuestionId   = vm.QuestionId,
                        QuestionText = vm.QuestionText
                    };

                    var resultQuestion = await questionRepo.Update(question);

                    if (resultQuestion == null)
                    {
                        return(BadRequest());
                    }

                    Answer answer = new Answer()
                    {
                        AnswerID   = Guid.Parse(vm.QuestionAnswerId),
                        AnswerText = vm.QuestionAnswer,
                        QuestionID = vm.QuestionId
                    };
                    var resultAnswer = await answerRepo.Update(answer);

                    if (resultAnswer == null)
                    {
                        return(BadRequest());
                    }

                    Choice a = new Choice()
                    {
                        ChoiceID   = Guid.Parse(vm.ChoiceAId),
                        QuestionID = vm.QuestionId,
                        ChoiceText = vm.QuestionChoiceA
                    };
                    var resultChoiceA = await choiceRepo.Update(a);

                    if (resultChoiceA == null)
                    {
                        return(BadRequest());
                    }

                    Choice b = new Choice()
                    {
                        ChoiceID   = Guid.Parse(vm.ChoiceBId),
                        QuestionID = vm.QuestionId,
                        ChoiceText = vm.QuestionChoiceB
                    };
                    var resultChoiceB = await choiceRepo.Update(b);

                    if (resultChoiceB == null)
                    {
                        return(BadRequest());
                    }

                    Choice c = new Choice()
                    {
                        ChoiceID   = Guid.Parse(vm.ChoiceCId),
                        QuestionID = vm.QuestionId,
                        ChoiceText = vm.QuestionChoiceC
                    };
                    var resultChoiceC = await choiceRepo.Update(c);

                    if (resultChoiceC == null)
                    {
                        return(BadRequest());
                    }

                    return(RedirectToAction("Questions", new { id = vm.QuizId }));
                }
                return(View(vm));
            }
            catch (Exception ex)
            {
                Debug.WriteLine($"update error. {ex.Message}");
                ModelState.AddModelError("", "Update actie mislukt." + ex.InnerException.Message);
                return(View(vm));
            }
        }