コード例 #1
0
        /// <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()));
        }
コード例 #2
0
        /// <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);
            }
        }
コード例 #3
0
        /// <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()));
        }
コード例 #4
0
        /// <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()));
        }