public static StudentProfileGradingSummaryViewData Create(Student student, IList <ChalkableStudentAverage> studentAverages, GradingPeriod currentGradingPeriod , IList <GradingPeriod> gradingPeriods, IList <Class> classes, IEnumerable <int> enrolledClassIds , IList <StudentCustomAlertDetail> customAlerts, IList <StudentHealthCondition> healthConditions , IList <StudentHealthFormInfo> healthForms) { var avgs = studentAverages.Where(x => enrolledClassIds.Contains(x.ClassId)).ToList(); var gradings = new List <StudentGradingsViewData>(); foreach (var gp in gradingPeriods) { var gpAvgs = avgs.Where(x => x.GradingPeriodId == gp.Id).ToList(); var classAvgs = gpAvgs.GroupBy(x => x.ClassId) .Select(x => StudentClassAvgViewData.Create(classes.First(y => y.Id == x.Key), x)); gradings.Add(new StudentGradingsViewData { GradingPeriod = GradingPeriodViewData.Create(gp), ClassAvgs = classAvgs.ToList() }); } return(new StudentProfileGradingSummaryViewData { Student = StudentProfileViewData.Create(student, customAlerts, healthConditions, healthForms), CurrentGradingPeriod = GradingPeriodViewData.Create(currentGradingPeriod), GradesByGradingPeriod = gradings.ToList() });; }
public static StudentProfileGradingDetailViewData Create(StudentGradingDetails gradingDetails , IList <StudentCustomAlertDetail> customAlerts, IList <StudentHealthCondition> healthConditions, IList <ClaimInfo> claims, IList <StudentHealthFormInfo> healthForms) { var res = new StudentProfileGradingDetailViewData(gradingDetails.Student, customAlerts, healthConditions, healthForms) { CurrentGradingPeriod = GradingPeriodViewData.Create(gradingDetails.GradingPeriod), ClassAvgs = ClassAvgViewData.Create(gradingDetails.GradingsByClass, gradingDetails.Student.Id, claims) }; return(res); }
public static StandardGradingGridViewData Create(GradingPeriod gradingPeriod, IList <GradingStandardInfo> gradingStandardInfos, IList <Student> students) { var res = new StandardGradingGridViewData { GradingPeriod = GradingPeriodViewData.Create(gradingPeriod), Students = students.Select(x => GradeStudentViewData.Create(x, x.IsWithdrawn)).ToList() }; gradingStandardInfos = gradingStandardInfos.Where(x => students.Any(y => y.Id == x.StudentId) && gradingPeriod.Id == x.GradingPeriodId).ToList(); res.GradingItems = StandardGradingViewData.Create(gradingStandardInfos, res.Students.Select(x => x.StudentInfo.Id).ToList()); if (res.GradingItems.Count > 0) { res.Avg = (int?)res.GradingItems.Average(x => x.NumericAvg); } return(res); }
public static GradingClassSummaryViewData Create(IList <AnnouncementDetails> announcements, GradingPeriod gradingPeriod, IList <GradedClassAnnouncementType> announcementTypes, double?avg, IList <ClaimInfo> claims) { var res = new GradingClassSummaryViewData { GradingPeriod = GradingPeriodViewData.Create(gradingPeriod), Avg = (decimal?)avg, ByAnnouncementTypes = new List <GradingClassSummaryItemViewData>() }; if (announcements != null && announcementTypes != null) { foreach (var gradedClassAnnouncementType in announcementTypes) { var anns = announcements.Where(x => x.ClassAnnouncementData.ClassAnnouncementTypeRef == gradedClassAnnouncementType.Id).ToList(); res.ByAnnouncementTypes.Add(GradingClassSummaryItemViewData.Create(anns, gradedClassAnnouncementType, claims)); } } return(res); }
public static GradingStandardClassSummaryViewData Create(GradingPeriod gradingPeriod , IList <GradingStandardInfo> gradingStandards, IList <ClassAnnouncement> announcements , IList <AnnouncementStandard> announcementStandards, IList <ClaimInfo> claims) { var res = new GradingStandardClassSummaryViewData { GradingPeriod = GradingPeriodViewData.Create(gradingPeriod), Items = new List <GradingStandardClassItemViewData>() }; var gsDic = gradingStandards.GroupBy(x => x.Standard.Id).ToDictionary(x => x.Key, x => x.ToList()); foreach (var kv in gsDic) { var annIds = announcementStandards.Where(x => x.StandardRef == kv.Key).Select(x => x.AnnouncementRef).ToList(); var anns = announcements.Where(x => annIds.Contains(x.Id)).ToList(); res.Items.Add(GradingStandardClassItemViewData.Create(anns, kv.Value.Average(x => x.NumericGrade) , kv.Value.First().Standard, claims)); } if (res.Items.Count > 0) { res.Avg = res.Items.Average(x => x.Avg); } return(res); }
protected GradingGridSummaryViewData(GradingPeriod gradingPeriod, int?avg) { Avg = avg; GradingPeriod = GradingPeriodViewData.Create(gradingPeriod); }