Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }