public async Task <IList <ShortClassGradesSummary> > GetClassesGradesSummary(int teacherId, GradingPeriod gradingPeriod) { Trace.Assert(Context.SchoolYearId.HasValue); var classesDetails = ServiceLocator.ClassService.GetTeacherClasses(gradingPeriod.SchoolYearRef, teacherId, gradingPeriod.MarkingPeriodRef); var classesIds = classesDetails.Select(x => x.Id).ToList(); var stiSectionsGrades = GetSectionGradesSummary(classesIds, gradingPeriod.Id); var students = ServiceLocator.StudentService.GetTeacherStudents(teacherId, Context.SchoolYearId.Value); var res = new List <ShortClassGradesSummary>(); foreach (var sectionGrade in stiSectionsGrades) { var classesDetail = classesDetails.FirstOrDefault(x => x.Id == sectionGrade.SectionId); res.Add(ShortClassGradesSummary.Create(sectionGrade, classesDetail, students)); } return(res); }
public async Task <IList <ShortClassGradesSummary> > GetClassesGradesSummary(int teacherId, GradingPeriod gradingPeriod) { var classesDetails = ServiceLocator.ClassService.GetTeacherClasses(gradingPeriod.SchoolYearRef, teacherId, gradingPeriod.MarkingPeriodRef); if (classesDetails.Count == 0) { return(new List <ShortClassGradesSummary>()); } var classesIds = classesDetails.Select(x => x.Id).ToList(); var stiSectionsGradesTask = ConnectorLocator.GradebookConnector.GetSectionGradesSummary(classesIds, gradingPeriod.Id); var students = ServiceLocator.StudentService.GetTeacherStudents(teacherId, gradingPeriod.SchoolYearRef); var res = new List <ShortClassGradesSummary>(); var stiSectionsGrades = await stiSectionsGradesTask; foreach (var sectionGrades in stiSectionsGrades) { var classesDetail = classesDetails.FirstOrDefault(x => x.Id == sectionGrades.SectionId); res.Add(ShortClassGradesSummary.Create(sectionGrades, classesDetail, students)); } return(res); }