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))); } }
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)); } }
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)); } }