Exemple #1
0
        public Grade?GetStudentAverageGradePerCourse(Course course)
        {
            studentService        = new StudentService();
            subjectService        = new SubjectService();
            studentSubjectService = new StudentSubjectService();
            gradeService          = new GradeService();

            int   studentsAverageGrade;
            int   studentsAverageRounded;
            Grade?averageGrade;

            List <Subject> subjectsFromACourse = subjectService.GetSubjectsFromACourse(course);

            int numberOfSubjectsInACourse = subjectsFromACourse.Count();

            int numberOfStudentsRegisteredInACourse = studentService
                                                      .GetStudentsRegisteredInACourse(course).Count();

            int studentsTotalGrades = studentSubjectService
                                      .GetTotalStudentGradesFromACourse(course);

            int numberOfStudentSubjectsGraded = GetNumberOfStudentsSubjectsGradedInACourse(subjectsFromACourse);


            if (numberOfSubjectsInACourse != 0 && numberOfStudentSubjectsGraded != 0)
            {
                studentsAverageGrade =
                    studentsTotalGrades / numberOfStudentSubjectsGraded;
            }
            else
            {
                studentsAverageGrade = 0;
            }

            studentsAverageRounded = (int)Math.Round((decimal)studentsAverageGrade);

            averageGrade = gradeService.ConvertIntToGrade(studentsAverageRounded);


            return(averageGrade);
        }