public IList <StudentCustomAlertDetail> GetListByStudentIds(IList <int> studentIds) { Trace.Assert(Context.SchoolYearId.HasValue); if (BaseSecurity.IsStudent(Context)) { return(new List <StudentCustomAlertDetail>()); } return(DoRead(u => new StudentCustomAlertDetailDataAccess(u).GetList(studentIds, Context.SchoolYearId.Value))); }
public async Task <ActionResult> Summary(int schoolPersonId) { Trace.Assert(Context.PersonId.HasValue); Trace.Assert(Context.SchoolYearId.HasValue); if (SchoolLocator.Context.PersonId != schoolPersonId && SchoolLocator.Context.Role == CoreRoles.STUDENT_ROLE) { var student = SchoolLocator.PersonService.GetPerson(schoolPersonId); return(Json(ShortPersonViewData.Create(student))); } var studentHealths = SchoolLocator.StudentService.GetStudentHealthConditions(schoolPersonId); var currentSchoolYear = SchoolLocator.SchoolYearService.GetCurrentSchoolYearByStudent(schoolPersonId); var healthFormsTask = SchoolLocator.StudentService.GetStudentHealthForms(schoolPersonId, currentSchoolYear.Id); var studentSummaryInfoTask = SchoolLocator.StudentService.GetStudentSummaryInfo(schoolPersonId, currentSchoolYear.Id); var customAlerts = SchoolLocator.StudentCustomAlertDetailService.GetList(schoolPersonId); var classes = SchoolLocator.ClassService.GetStudentClasses(currentSchoolYear.Id, schoolPersonId).ToList(); var classPersons = SchoolLocator.ClassService.GetClassPersons(schoolPersonId, true); classes = classes.Where(x => classPersons.Any(y => y.ClassRef == x.Id)).ToList(); var schedule = SchoolLocator.ClassPeriodService.GetSchedule(null, schoolPersonId, null, Context.NowSchoolYearTime.Date, Context.NowSchoolYearTime.Date); var classIdsSortedBySchedule = schedule.OrderBy(si => si.PeriodOrder).Select(si => si.ClassId).Distinct().ToList(); var classList = classIdsSortedBySchedule.Where(x => x.HasValue && classes.Any(y => y.Id == x.Value)) .Select(sortedClassRef => classes.First(cls => cls.Id == sortedClassRef)).ToList(); classList.AddRange(classes.Where(cls => !classIdsSortedBySchedule.Contains(cls.Id))); Room currentRoom = null; ClassDetails currentClass = null; var studentSummaryInfo = await studentSummaryInfoTask; if (studentSummaryInfo.CurrentSectionId.HasValue) { currentClass = classes.FirstOrDefault(x => x.Id == studentSummaryInfo.CurrentSectionId.Value); if (currentClass?.RoomRef != null) { currentRoom = SchoolLocator.RoomService.GetRoomById(currentClass.RoomRef.Value); } } var res = StudentSummaryViewData.Create(studentSummaryInfo, currentRoom, currentClass, classList, customAlerts, await studentHealths, await healthFormsTask, BaseSecurity.IsStudent(Context)); return(Json(res)); }