private void PrepareStudentJsonData() { Trace.Assert(Context.PersonId.HasValue); var startupData = SchoolLocator.SchoolService.GetStartupData(); var district = PrepareCommonViewDataForSchoolPerson(startupData); var person = startupData.Person; var personView = PersonInfoViewData.Create(person); ProcessFirstLogin(person); ProcessActive(person, personView); PrepareJsonData(personView, ViewConstants.CURRENT_PERSON); var dayTypes = SchoolLocator.DayTypeService.GetDayTypes(startupData.Classes.SelectMany(x => x.ClassPeriods, (a, b) => b.DayTypeRef).ToList()); var classesVD = ClassComplexViewData.Create(startupData.Classes, startupData.Rooms, dayTypes).ToList(); PrepareJsonData(classesVD, ViewConstants.CLASSES); var ip = RequestHelpers.GetClientIpAddress(Request); MasterLocator.UserTrackingService.IdentifyStudent(Context.Login, person.FirstName, person.LastName, district.Name, "", person.FirstLoginDate, Context.DistrictTimeZone, ip, Context.SCEnabled); }
private void PrepareTeacherJsonData() { var startProcessingTime = DateTime.Now.TimeOfDay; var timeCallBuilder = new StringBuilder(); Trace.Assert(Context.PersonId.HasValue); var startupData = ProcessMethodAndCallTime(() => SchoolLocator.SchoolService.GetStartupData(), timeCallBuilder, "Retrieving StartUpData "); var district = ProcessMethodAndCallTime(() => PrepareCommonViewDataForSchoolPerson(startupData), timeCallBuilder, "PrepareCommonSchoolPersonData"); var person = startupData.Person; ProcessMethodAndCallTime(() => ProcessFirstLogin(person), timeCallBuilder, "ProcessFirstLogin"); var personView = PersonInfoViewData.Create(person); ProcessMethodAndCallTime(() => ProcessActive(person, personView), timeCallBuilder, "ProcessActive"); PrepareJsonData(personView, ViewConstants.CURRENT_PERSON); if (!CanTeacherViewChalkable()) { return; } var classes = startupData.Classes; var classNames = classes.Select(x => x.Name).ToList(); var schoolOption = startupData.SchoolOption; PrepareJsonData(SchoolOptionViewData.Create(schoolOption), ViewConstants.SCHOOL_OPTIONS); var dayTypes = SchoolLocator.DayTypeService.GetDayTypes(classes.SelectMany(x => x.ClassPeriods, (a, b) => b.DayTypeRef).ToList()); var classesList = ClassComplexViewData.Create(classes, startupData.Rooms, dayTypes).ToList(); PrepareJsonData(classesList, ViewConstants.CLASSES); var gradeLevel = SchoolLocator.GradeLevelService.GetGradeLevels(); PrepareJsonData(GradeLevelViewData.Create(gradeLevel), ViewConstants.GRADE_LEVELS); ProcessMethodAndCallTime(() => PrepareClassesAdvancedData(startupData), timeCallBuilder, "Retrieving Activity Category from Inow"); PrepareClassesAdvancedData(startupData); PrepareJsonData(GradingCommentViewData.Create(startupData.GradingComments), ViewConstants.GRADING_COMMMENTS); PrepareJsonData(AttendanceReasonDetailsViewData.Create(startupData.AttendanceReasons), ViewConstants.ATTENDANCE_REASONS); var announcementAttributes = ProcessMethodAndCallTime(() => SchoolLocator.AnnouncementAttributeService.GetList(true), timeCallBuilder, "Retrieving AnnouncementAttribute"); PrepareJsonData(AnnouncementAttributeViewData.Create(announcementAttributes), ViewConstants.ANNOUNCEMENT_ATTRIBUTES); var ip = RequestHelpers.GetClientIpAddress(Request); MasterLocator.UserTrackingService.IdentifyTeacher(Context.Login, person.FirstName, person.LastName, district.Name, classNames, person.FirstLoginDate, Context.DistrictTimeZone, ip, Context.SCEnabled); var time = DateTime.Now.TimeOfDay - startProcessingTime; if (time.Seconds > 5) { var message = $"Timeout Error. Teacher.aspx performance time issue. Processing Time {time} \n"; var ex = new ChalkableException(message + timeCallBuilder); SendErrorToRaygun(ex, "Teacher SisUserLogin Performance Issue ", SchoolLocator.Context); } }