public async Task OnGetAsync() { Student = await _context.Student.ToListAsync(); StudentData = new StudentIndexData(); StudentData.Students = await _context. .Include(i => i.OfficeAssignment) .Include(i => i.Courses) .ThenInclude(c => c.Department) .OrderBy(i => i.LastName) .ToListAsync(); }
// GET: Students1 public ActionResult Index(int?id, int?courseID, int?moyenID) { var viewModel = new StudentIndexData(); viewModel.Students = db.Students .Include(i => i.Courses.Select(c => c.Department)) .OrderBy(i => i.LastName); var students = db.Students.Include(c => c.OfficeAssignment); if (id != null) { ViewBag.StudentID = id.Value; viewModel.Courses = viewModel.Students.Where( i => i.StudentID == id.Value).Single().Courses; foreach (Course cour in viewModel.Courses) { db.Entry(cour).Collection(x => x.Grades).Load(); } } if (courseID != null) { ViewBag.CourseID = courseID.Value; // Lazy loading //viewModel.Enrollments = viewModel.Courses.Where( // x => x.CourseID == courseID).Single().Enrollments; // Explicit loading var selectedCourse = viewModel.Courses.Where(x => x.CourseId == courseID).Single(); db.Entry(selectedCourse).Collection(x => x.Grades).Load(); if (selectedCourse.Grades != null) { //foreach (Grade Moyen in selectedCourse.Grades) //{ // db.Entry(Moyen).Reference(x => x.Student).Load(); //} //viewModel.Moyennes = selectedCourse.Grades; viewModel.Grade = selectedCourse.Grades.Where(g => g.Student.StudentID == id).FirstOrDefault(); } } return(View(viewModel)); }
public async Task OnGetAsync(int?id, int?EventID) { Student = new StudentIndexData(); Student.Students = await _context.Student .Include(s => s.AssignEvents) .ThenInclude(i => i.Event) .AsNoTracking() .OrderBy(i => i.LastName) .ToListAsync(); ///////////////////////////////////////////////////// //Added code for searching by last name. var SearchStudent = from m in _context.Student select m; if (!string.IsNullOrEmpty(SearchString)) { Student.Students = SearchStudent.Where(s => s.LastName.Contains(SearchString)); } ///////////////////////////////////////////////////// if (id != null) { StudentID = id.Value; Student student = Student.Students.Where( i => i.StudentID == id.Value).Single(); Student.Events = student.AssignEvents.Select(s => s.Event); } if (EventID != null) { EventID = EventID.Value; Student.AssignEvents = Student.Events.Where( x => x.EventID == EventID).Single().AssignEvents; } }
// GET: Students public async Task <IActionResult> Index( int?StudentID, int?CourseID, string sortString = "", string searchString = "", int pageIndex = 1) { StudentIndexData viewModel = new StudentIndexData(); StudentParam param = new StudentParam(); param.SearchString = searchString; param.SortString = sortString; param.SortLastName = (sortString == "lastName_desc") ? "lastName" : "lastName_desc"; param.SortID = (sortString == "id_desc") ? "id" : "id_desc"; param.SortEnrollmentDate = (sortString == "enrollDate_desc") ? "enrollDate" : "enrollDate_desc"; param.PageIndex = pageIndex; viewModel.Param = param; IQueryable <Student> students = _context.Students .Include(s => s.Enrollments) .ThenInclude(s => s.Course) .ThenInclude(s => s.Department) .Include(s => s.Enrollments) .ThenInclude(s => s.Course) .ThenInclude(s => s.CourseAssignments) .ThenInclude(s => s.Instructor) .AsNoTracking() .AsQueryable(); if (!String.IsNullOrEmpty(searchString)) { students = students.Where( s => s.FirstName.Contains(searchString) || s.LastName.Contains(searchString) ); } if (StudentID != null) { viewModel.Param.StudentID = StudentID; //ViewData["StudentID"] = StudentID; Student student = students .Where(i => i.StudentId == StudentID).Single(); viewModel.Courses = student.Enrollments .Select(c => c.Course); } if (CourseID != null) { viewModel.Param.CourseID = CourseID; Course course = viewModel.Courses .Where(c => c.CourseID == CourseID).FirstOrDefault(); viewModel.CourseAssignments = course.CourseAssignments; } students = SortStudents(students, sortString); int pageSize = 10; PagedList <Student> list = _pagedList.PagedList(); viewModel.PagedList = list.Paging(await students.ToListAsync(), pageIndex, pageSize); return(View(viewModel)); }