/// <summary> /// Loads a student object with data suitable for the INAC report /// </summary> /// <param name="connection">A database connection</param> /// <param name="school"></param> /// <param name="startDate"></param> /// <param name="endDate"></param> /// <returns></returns> public static List <Student> loadStudentData(SqlConnection connection, School school, DateTime startDate, DateTime endDate) { List <Student> loadedStudentList = new List <Student>(); List <Student> allLoadedStudents = Student.loadReserveStudentsFromThisSchool(connection, school); // Filter students to only those in a track that falls between the given dates foreach (Student student in allLoadedStudents) { student.track = Track.loadThisTrack(connection, student.getTrackID()); if ((student.track.endDate > startDate) && (student.track.startDate < endDate)) { loadedStudentList.Add(student); } } // Load required data for students foreach (Student student in loadedStudentList) { // Load contacts for students student.contacts = Contact.loadContactsForStudent(connection, student); // Load absenses for students student.absences = Absence.loadAbsencesForThisStudentAndTimePeriod(connection, student, startDate, endDate); // Load any terms that fall within the specified dates student.track.terms = Term.loadTermsBetweenTheseDates(connection, student.track, startDate, endDate); // Load enrolled courses into the terms foreach (Term term in student.track.terms) { term.Courses = SchoolClass.loadStudentEnrolledClassesForThisTerm(connection, student, term); } } return(loadedStudentList); }