/// <summary> /// Gets an array of Programs in the specified Department asynchronously. /// </summary> /// <param name="department">The Department to retrieve Programs for.</param> public Task <Program[]> getProgramsAsync(Department department) { //Can't retrieve departments without knowing the college to retrieve from (eventually) if (department == null) { return(null); } //Return department programs if already retrieved //Don't refresh due to low frequency of change if (department.programs != null) { return(Task.FromResult(department.programs)); } //Get programs from database DatabaseSelect dbSelect = new DatabaseSelect(); DataTable programsTable = dbSelect.SelectPrograms(department.ID); //Convert data to Program objects List <Program> programs = new List <Program>(); foreach (DataRow row in programsTable.Rows) { programs.Add(DataInterpreter.getProgram(row)); } return(Task.FromResult(programs.ToArray())); }
/// <summary> /// Gets a StudentSuccessMap for the student with the given star ID and Program. /// </summary> /// /// <param name="starID">The Star ID of the student to retrieve a StudentSuccessMap for.</param> /// <param name="program">The Program to retrieve a SuccessMap for.</param> public Task <StudentSuccessMap> getStudentSuccessMapAsync(string starID, Program program) { //Can't retrieve success map without knowing the program to retrieve from (eventually) if (program == null) { return(null); } //Return program success map if already retrieved //Don't refresh due to low frequency of change if (program.successMap != null && program.successMap is StudentSuccessMap) { return(Task.FromResult((StudentSuccessMap)program.successMap)); } DatabaseSelect dbSelect = new DatabaseSelect(); DataTable studentSuccessMapTable = dbSelect.SelectStudentSuccessMap(starID, program.ID); //Make sure a student success map was retrieved if (studentSuccessMapTable != null && studentSuccessMapTable.Rows.Count > 0) { StudentSuccessMap successMap = DataInterpreter.getStudentSuccessMap(studentSuccessMapTable.Rows[0]); program.successMap = successMap; return(Task.FromResult(successMap)); } else { return(null); } }
/// <summary> /// Gets an array of Departments in the specified College asynchronously. /// </summary> /// <param name="college">The College to retrieve Departments for.</param> public Task <Department[]> getDepartmentsAsync(College college) { //Can't retrieve departments without knowing the college to retrieve from (eventually) if (college == null) { return(null); } //Return college departments if already retrieved //Don't refresh due to low frequency of change if (college.departments != null) { return(Task.FromResult(college.departments)); } //Get departments from database DatabaseSelect dbSelect = new DatabaseSelect(); DataTable departmentsTable = dbSelect.SelectDepartments(college.ID); //Convert data to Department objects List <Department> departments = new List <Department>(); foreach (DataRow row in departmentsTable.Rows) { departments.Add(DataInterpreter.getDepartment(row)); } return(Task.FromResult(departments.ToArray())); }
/// <summary> /// Gets an array of Colleges in the university asynchronously. /// </summary> public Task <College[]> getCollegesAsync() { //Get colleges from database DatabaseSelect dbSelect = new DatabaseSelect(); DataTable collegeTable = dbSelect.SelectColleges(); //Convert data to College objects List <College> colleges = new List <College>(); foreach (DataRow row in collegeTable.Rows) { colleges.Add(DataInterpreter.getCollege(row)); } return(Task.FromResult(colleges.ToArray())); }