// GET: Major
        //[Authorize(Roles ="CanManagePage")]
        public ActionResult Index(int?id, int?courseID)
        {
            // var majors = db.Majors.Include(m => m.Teacher);
            //return View(majors.ToList());

            var viewModel = new MajorCourseModel();

            viewModel.Majors = db.Majors
                               .Include(i => i.Teacher)
                               .Include(i => i.Courses.Select(c => c.Majors))
                               .OrderBy(i => i.MajorID);

            if (id != null)
            {
                ViewBag.MajorID   = id.Value;
                viewModel.Courses = viewModel.Majors.Where(
                    i => i.MajorID == id.Value).Single().Courses;
            }
            if (courseID != null)
            {
                ViewBag.CourseID = courseID.Value;
                var selectedCourse = viewModel.Courses.Where(x => x.CourseID == courseID).Single();
                db.Entry(selectedCourse).Collection(x => x.Enrollments).Load();
                foreach (Enrollment enrollment in selectedCourse.Enrollments)
                {
                    db.Entry(enrollment).Reference(x => x.Student).Load();
                }

                viewModel.Enrollments = selectedCourse.Enrollments;
            }



            return(View(viewModel));
        }
        public ActionResult ReadOnlyIndex(int?id, int?courseID)
        {
            // var majors = db.Majors.Include(m => m.Teacher);
            //return View(majors.ToList());

            var viewModel = new MajorCourseModel();

            viewModel.Majors = db.Majors
                               .Include(i => i.Teacher)
                               .Include(i => i.Courses.Select(c => c.Majors))
                               .OrderBy(i => i.MajorID);

            if (id != null)
            {
                ViewBag.MajorID   = id.Value;
                viewModel.Courses = viewModel.Majors.Where(
                    i => i.MajorID == id.Value).Single().Courses;
            }



            return(View(viewModel));
        }