private decimal?GetAverageGradeByPeriod(GradePeriod period) { if (StudentSubjects.Any()) { var studentSubjectWithGradeInTerm = StudentSubjects.Where(s => s.Grades.Any(g => g.Period == period)).ToList(); if (studentSubjectWithGradeInTerm.Any()) { return(studentSubjectWithGradeInTerm.Average(s => s.Grades.Where(g => g.Period == period).Average(g => g.Value))); } } return(null); }
private decimal?GetAverageGradeByPeriod(GradePeriod period) { if (period == GradePeriod.FirstTerm) { if (Students.Any(s => s.AverageGradeFirstTerm != null)) { return(Students.Where(s => s.AverageGradeFirstTerm != null).Average(s => s.AverageGradeFirstTerm)); } } else { if (Students.Any(s => s.AverageGradeSecondTerm != null)) { return(Students.Where(s => s.AverageGradeSecondTerm != null).Average(s => s.AverageGradeSecondTerm)); } } return(null); }