public static StudentSummaryViewData Create(StudentSummaryInfo studentSummary, Room room, ClassDetails currentClass, IList <ClassDetails> classes , IList <StudentCustomAlertDetail> customAlerts, IList <StudentHealthCondition> healthConditions, IList <StudentHealthFormInfo> studentHealthForms, bool isStudent = false) { var res = new StudentSummaryViewData(studentSummary.StudentInfo, room, customAlerts, healthConditions, studentHealthForms) { ClassesSection = ClassViewData.Create(classes), AttendanceBox = StudentHoverBoxViewData <TotalAbsencesPerClassViewData> .Create(studentSummary.DailyAttendance, studentSummary.Attendances, classes), DisciplineBox = StudentHoverBoxViewData <DisciplineTypeSummaryViewData> .Create(studentSummary.InfractionSummaries, studentSummary.TotalDisciplineOccurrences), GradesBox = StudentHoverBoxViewData <StudentSummaryGradeViewData> .Create(studentSummary.StudentAnnouncements), RanksBox = studentSummary.ClassRank != null ? StudentHoverBoxViewData <StudentSummaryRankViewData> .Create(studentSummary.ClassRank) : null, CurrentClassName = NO_CLASS_SCHEDULED, }; if (currentClass != null) { res.CurrentClassName = currentClass.Name; } res.CurrentAttendanceLevel = studentSummary.CurrentAttendanceLevel; if (isStudent) { ClearAlertsForStudent(res); } return(res); }
public StudentSummaryInfo GetStudentSummaryInfo(int studentId) { var classRank = new ClassRank { StudentId = studentId, ClassSize = 10 }; var syId = Context.SchoolYearId ?? ServiceLocator.SchoolYearService.GetCurrentSchoolYear().Id; var discipline = ((DemoDisciplineService)ServiceLocator.DisciplineService).GetList(DateTime.Today); var infractions = new List <StiConnector.Connectors.Model.Infraction>(); foreach (var disciplineReferral in discipline.Where(disciplineReferral => disciplineReferral.Infractions != null)) { infractions.AddRange(disciplineReferral.Infractions); } var chlkInfractions = ServiceLocator.InfractionService.GetInfractions(); var infractionSummaries = from infr in infractions group infr by infr.Id into g select new { Id = g.Key, Count = g.Count() }; var attendances = ((DemoAttendanceService)ServiceLocator.AttendanceService).GetStudentAbsenceSummary(studentId); var infractionSummary = infractionSummaries.Select(x => new InfractionSummary { StudentId = studentId, InfractionId = x.Id, Occurrences = x.Count }).ToList(); var nowDashboard = new NowDashboard { ClassRank = classRank, Infractions = infractionSummary, SectionAttendance = new List <StudentSectionAbsenceSummary>(), //attendances, Scores = ((DemoStudentAnnouncementService)ServiceLocator.StudentAnnouncementService).GetActivityScoresForStudent(studentId) }; var student = GetStudentDetails(studentId, syId); var activitiesids = nowDashboard.Scores.GroupBy(x => x.ActivityId).Select(x => x.Key).ToList(); //TODO: impl var anns = new List <AnnouncementComplex>(); //((DemoAnnouncementService) ServiceLocator.ClassAnnouncementService).GetByActivitiesIds(activitiesids); var res = StudentSummaryInfo.Create(student, nowDashboard, chlkInfractions, anns, MapperFactory.GetMapper <StudentAnnouncement, Score>()); return(res); }
public async Task <StudentSummaryInfo> GetStudentSummaryInfo(int studentId, int schoolYearId) { Trace.Assert(Context.SchoolLocalId.HasValue); Trace.Assert(Context.PersonId.HasValue); var nowDashboardTask = ConnectorLocator.StudentConnector.GetStudentNowDashboard(schoolYearId, studentId, Context.NowSchoolTime); var student = ServiceLocator.StudentService.GetById(studentId, schoolYearId); var infractions = ServiceLocator.InfractionService.GetInfractions(); var nowDashboard = await nowDashboardTask; var activitiesIds = nowDashboard.Scores.GroupBy(x => x.ActivityId).Select(x => x.Key).ToList(); var anns = DoRead(uow => new ClassAnnouncementForTeacherDataAccess(uow, schoolYearId).GetByActivitiesIds(activitiesIds, Context.PersonId.Value)); anns = anns.Where(x => x.ClassAnnouncementData.VisibleForStudent).ToList(); var res = StudentSummaryInfo.Create(student, nowDashboard, infractions, anns, MapperFactory.GetMapper <StudentAnnouncement, Score>()); return(res); }
public static StudentInfoViewData Create(PersonDetails student, StudentDetailsInfo studentDetails, StudentSummaryInfo studentSummary, IList <ClassDetails> studentClasses, ClassDetails currentClass, Room currentRoom, int currentSchoolYearId) { var res = Create(student); res.DisplayName = studentDetails.DisplayName(includeMiddleName: true); var gradeLevels = student.StudentSchoolYears .OrderBy(x => x.SchoolYearRef) .Select(x => IdNameViewData <int> .Create(x.GradeLevelRef, x.GradeLevel.Name)) .ToList(); var currentStudentSchoolYear = student.StudentSchoolYears.FirstOrDefault(x => x.SchoolYearRef == currentSchoolYearId); if (currentStudentSchoolYear != null) { res.GradeLevel = gradeLevels.First(x => x.Id == currentStudentSchoolYear.GradeLevelRef); } res.IsHispanic = studentDetails.IsHispanic; res.HasMedicalAlert = studentDetails.HasMedicalAlert; res.IsAllowedInetAccess = studentDetails.IsAllowedInetAccess; res.SpecialInstructions = studentDetails.SpecialInstructions; res.SpEdStatus = studentDetails.SpEdStatus; res.IsIEPActive = studentDetails.IsIEPActive; res.IsTitle1Eligible = studentDetails.StudentSchool.IsTitle1Eligible; res.Section504 = !string.IsNullOrWhiteSpace(studentDetails.Section504Qualification) && studentDetails.Section504Qualification.Trim() != "NA"; res.IsHomeless = studentDetails.IsHomeless; res.IsImmigrant = studentDetails.IsImmigrant; res.Language = studentDetails.Language != null ? IdNameViewData <int> .Create(studentDetails.Language.Id, studentDetails.Language.Name) : null; res.Nationality = studentDetails.Country != null ? IdNameViewData <int> .Create(studentDetails.Country.Id, studentDetails.Country.Name) : null; res.Ethnicity = studentDetails.Ethnicity != null ? EthnicityViewData.Create(studentDetails.Ethnicity) : null; res.Lep = studentDetails.LimitedEnglishRef.HasValue; res.LimitedEnglishId = studentDetails.LimitedEnglishRef; res.IsForeignExchange = studentDetails.IsForeignExchange; res.StateIdNumber = studentDetails.StateIdNumber; res.AlternateStudentNumber = studentDetails.AltStudentNumber; res.StudentNumber = studentDetails.StudentNumber; res.OriginalEnrollmentDate = studentDetails.OriginalEnrollmentDate; res.IsRetained = student.StudentSchoolYears.First(x => x.SchoolYearRef == currentSchoolYearId).IsRetained; res.Counselor = studentDetails.Counselor != null ? ShortPersonViewData.Create(studentDetails.Counselor) : null; res.AttendanceBox = StudentHoverBoxViewData <TotalAbsencesPerClassViewData> .Create(studentSummary.DailyAttendance, studentSummary.Attendances, studentClasses); res.DisciplineBox = StudentHoverBoxViewData <DisciplineTypeSummaryViewData> .Create(studentSummary.InfractionSummaries, studentSummary.TotalDisciplineOccurrences); res.GradesBox = StudentHoverBoxViewData <StudentSummaryGradeViewData> .Create(studentSummary.StudentAnnouncements); res.CurrentAttandanceLevel = studentSummary.CurrentAttendanceLevel; res.CurrentClassName = NO_CLASS_SCHEDULED; if (currentClass != null) { res.CurrentClassName = currentClass.Name; } return(res); }