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()
            });;
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
 protected GradingGridSummaryViewData(GradingPeriod gradingPeriod, int?avg)
 {
     Avg           = avg;
     GradingPeriod = GradingPeriodViewData.Create(gradingPeriod);
 }