/// <summary> /// For Changing order of sections /// </summary> public ActionResult SaveOrder(QuizSectionsView view) { if (view.SectionIds == null) { return(HttpNotFound()); } var i = 1; foreach (var index in view.SectionIds) { var section = cx.Sections.Find(index); section.Order = i; ++i; } cx.SaveChanges(); var quiz = cx.Quizzes.Find(view.Quiz.Id); var model = new QuizSectionsView() { Quiz = quiz, Sections = cx.Sections.Where(x => x.Quiz.Id == quiz.Id).ToList() }; return(View("Sections", model)); }
public ActionResult AddSection(QuizSectionsView view) { var section = view.NewSection; section.Quiz = cx.Quizzes.Find(section.Quiz.Id); if (cx.Sections.Count(x => x.Quiz.Id == section.Quiz.Id) != 0) { section.Order = cx.Sections.Where(x => x.Quiz.Id == section.Quiz.Id). Max(y => y.Order) + 1; } else { section.Order = 1; } cx.Sections.Add(section); cx.SaveChanges(); var quiz = cx.Quizzes.Find(section.Quiz.Id); var quizModel = new QuizSectionsView() { Quiz = quiz, Sections = cx.Sections.Where(x => x.Quiz.Id == quiz.Id).ToList() }; ModelState.Clear(); return(View("Sections", quizModel)); }
//--------------------Sections------------------------------------------------------------ /// <summary> /// Shows page for creating and viewing sections /// </summary> public ActionResult Sections(int?id) { var quiz = cx.Quizzes.Find(id); var model = new QuizSectionsView() { Quiz = quiz, Sections = cx.Sections.Where(x => x.Quiz.Id == quiz.Id).ToList() }; return(View(model)); }
public ActionResult DeleteSection(int?id) { var model = cx.Sections.Find(id); if (model == null) { return(HttpNotFound()); } var sections = cx.Sections.Where(x => x.Quiz.Id == model.Quiz.Id).ToList(); for (int i = model.Order; i < sections.Count; ++i) { sections[i].Order--; } int quizId = model.Quiz.Id; var questions = cx.Questions.Where(x => x.Section.Id == model.Id).ToList(); foreach (var question in questions) { var answers = cx.Answers.Where(x => x.Question.Id == question.Id).ToList(); foreach (var answer in answers) { answer.Question = null; } } cx.Questions.RemoveRange(questions); cx.Sections.Remove(model); cx.SaveChanges(); var quiz = cx.Quizzes.Find(quizId); var quizModel = new QuizSectionsView() { Quiz = quiz, Sections = cx.Sections.Where(x => x.Quiz.Id == quiz.Id).ToList() }; return(View("Sections", quizModel)); }