public static IList <StandardGradingViewData> Create(IList <GradingStandardInfo> gradingStandards, IList <int> studentIds) { var gradigDic = gradingStandards.GroupBy(x => x.Standard.Id).ToDictionary(x => x.Key, x => x.ToList()); var res = new List <StandardGradingViewData>(); foreach (var kv in gradigDic) { var gradingSt = kv.Value.First(); var standardGrading = new StandardGradingViewData { Standard = StandardViewData.Create(gradingSt.Standard), NumericAvg = (int?)kv.Value.Average(x => x.NumericGrade), Items = new List <StandardGradingItemViewData>() }; res.Add(standardGrading); foreach (var studentId in studentIds) { var gradingInfo = kv.Value.FirstOrDefault(x => x.StudentId == studentId); if (gradingInfo != null) { standardGrading.Items.Add(StandardGradingItemViewData.Create(gradingInfo)); } } } return(res); }
public static GradingStandardClassItemViewData Create(IList <ClassAnnouncement> announcements, decimal?avg, Standard standard, IList <ClaimInfo> claims) { return(new GradingStandardClassItemViewData { ItemDescription = StandardViewData.Create(standard), Avg = avg, Announcements = ClassAnnouncementViewData.Create(announcements, claims) }); }
public static GradingGridsViewData Create(ChalkableGradeBook grid, IList <GradingPeriod> gradingPeriods , IList <Standard> standards, IList <ClassAnnouncementType> classAnnouncementTypes, IList <ClaimInfo> claims) { return(new GradingGridsViewData { CurrentGradingGrid = grid != null?GradingGridViewData.Create(grid, claims) : null, GradingPeriods = gradingPeriods.Select(GradingPeriodViewData.Create).ToList(), Standards = StandardViewData.Create(standards), ClassAnnouncementTypes = ClassAnnouncementTypeViewData.Create(classAnnouncementTypes) }); }