private async Task <GradingPeriodFinalGradeViewData> GetGradingPeriodFinalGrade(int classId, GradingPeriod gradingPeriod, int?averageId) { if (!Context.SchoolLocalId.HasValue) { throw new UnassignedUserException(); } var finalGrade = await SchoolLocator.GradingStatisticService.GetFinalGrade(classId, gradingPeriod); var average = finalGrade.Averages.FirstOrDefault(x => !averageId.HasValue || x.AverageId == averageId); return(GradingPeriodFinalGradeViewData.Create(finalGrade, average, Context.Claims)); }
public async Task <ActionResult> FinalGrade(int classId) { var gradingPeriods = SchoolLocator.GradingPeriodService.GetGradingPeriodsDetailsByClassId(classId); var currentGradingPeriod = CurrentGradingPeriodFromList(gradingPeriods, Context.NowSchoolYearTime.Date); GradingPeriodFinalGradeViewData gradingPeriodFinalGrade = null; if (currentGradingPeriod != null) { gradingPeriodFinalGrade = await GetGradingPeriodFinalGrade(classId, currentGradingPeriod, null); } return(Json(FinalGradesViewData.Create(gradingPeriods, gradingPeriodFinalGrade))); }