public static StudentHoverBoxViewData <TotalAbsencesPerClassViewData> Create(DailyAbsenceSummaryInfo dailyAbsenceSummary , IList <ShortStudentClassAttendanceSummary> attendances, IList <ClassDetails> classDetailses) { var res = new StudentHoverBoxViewData <TotalAbsencesPerClassViewData> { Hover = TotalAbsencesPerClassViewData.Create(attendances, classDetailses), }; decimal totalAbsencesCount = 0; if (dailyAbsenceSummary != null && dailyAbsenceSummary.Absences.HasValue) { totalAbsencesCount += dailyAbsenceSummary.Absences.Value; // Excluded tardies because of Jonathan Whitehurst's comment on CHLK-3184 } //totalAbsencesCount += res.Hover.Sum(x => x.Absences); res.Title = totalAbsencesCount.ToString(CultureInfo.InvariantCulture); return(res); }
public static StudentSummaryInfo Create(Student student, NowDashboard nowDashboard , IList <Data.School.Model.Infraction> infractions, IList <AnnouncementComplex> anns, IMapper <StudentAnnouncement, Score> mapper) { var res = new StudentSummaryInfo { StudentInfo = student, ClassRank = nowDashboard.ClassRank != null?ClassRankInfo.Create(nowDashboard.ClassRank) : null, CurrentSectionId = nowDashboard.CurrentSectionId, TotalDisciplineOccurrences = nowDashboard.Infractions.Any() ? nowDashboard.Infractions.Sum(x => x.Occurrences) : 0, InfractionSummaries = InfractionSummaryInfo.Create(nowDashboard.Infractions.ToList(), infractions), StudentAnnouncements = new List <StudentAnnouncement>(), Attendances = ShortStudentClassAttendanceSummary.Create(nowDashboard.SectionAttendance.ToList()), CurrentAttendanceLevel = nowDashboard.CurrentAttendanceStatus }; if (nowDashboard.DailyAttendance == null) { nowDashboard.DailyAttendance = new StudentDailyAbsenceSummary { Absences = 0, Tardies = 0, Presents = 0 } } ; res.DailyAttendance = DailyAbsenceSummaryInfo.Create(nowDashboard.DailyAttendance); var scores = nowDashboard.Scores.Where(x => !string.IsNullOrEmpty(x.ScoreValue)).ToList(); foreach (var score in scores) { var ann = anns.FirstOrDefault(x => x.ClassAnnouncementData.SisActivityId == score.ActivityId); if (ann == null) { continue; } var studentAnn = new StudentAnnouncement { AnnouncementId = ann.Id }; mapper.Map(studentAnn, score); res.StudentAnnouncements.Add(studentAnn); } return(res); } }