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