Example #1
0
        public async Task OnGetAsync(int?id, int?courseID)
        {
            InstructorVM = new InstructorIndexViewModel
            {
                Instructors = await _context.Instructor
                              .Include(i => i.OfficeAssignment)
                              .Include(i => i.CourseAssignments)
                              .ThenInclude(ca => ca.Course)
                              .ThenInclude(c => c.Department)
                              //.Include(i => i.CourseAssignments)
                              //    .ThenInclude(c => c.Course)
                              //        .ThenInclude(i => i.Enrollments)
                              //            .ThenInclude(i => i.Student)
                              //.AsNoTracking()
                              .OrderBy(i => i.LastName)
                              .ToListAsync()
            };

            if (id != null)
            {
                InstructorID = id.Value;
                var instructor = InstructorVM.Instructors.Where(
                    i => i.ID == id.Value).Single();
                InstructorVM.Courses = instructor.CourseAssignments.Select(
                    s => s.Course);
            }

            if (courseID != null)
            {
                CourseID = courseID.Value;
                InstructorVM.Enrollments = InstructorVM.Courses.Where(
                    c => c.CourseID == courseID).Single().Enrollments;
            }
        }
Example #2
0
        // GET: Instructors
        public async Task <IActionResult> Index(int?id, int?courseID)
        {
            var instructorIndexVM = new InstructorIndexViewModel
            {
                Instructors = await _context.Instructors
                              .Include(i => i.OfficeAssignment)
                              .Include(i => i.CourseAssignments)
                              .ThenInclude(i => i.Course)
                              .ThenInclude(i => i.Enrollments)
                              .ThenInclude(i => i.Student)
                              .Include(i => i.CourseAssignments)
                              .ThenInclude(i => i.Course)
                              .ThenInclude(i => i.Department)
                              .AsNoTracking()
                              .OrderBy(i => i.LastName).ToListAsync()
            };

            if (id != null)
            {
                ViewData["InstructorID"] = id.Value;
                Instructor instructor = instructorIndexVM.Instructors.Where(
                    i => i.ID == id.Value).Single();
                instructorIndexVM.Courses = instructor.CourseAssignments.Select(s => s.Course);
            }

            if (courseID != null)
            {
                ViewData["CourseID"]          = courseID.Value;
                instructorIndexVM.Enrollments = instructorIndexVM.Courses.Where(
                    c => c.CourseID == courseID).Single().Enrollments;
            }

            return(View(instructorIndexVM));
        }