コード例 #1
0
        public static StudentAttendanceSummaryViewData Create(StudentAttendanceSummary attendanceSummary, GradingPeriod currentGradingPeriod, IList <GradingPeriod> gradingPeriods
                                                              , IList <StudentCustomAlertDetail> customAlerts, IList <StudentHealthCondition> healthConditions, IList <StudentHealthFormInfo> healthForms)
        {
            var res = new StudentAttendanceSummaryViewData(attendanceSummary.Student, customAlerts, healthConditions, healthForms)
            {
                GradingPeriods = GradingPeriodViewData.Create(gradingPeriods)
            };

            if (currentGradingPeriod != null)
            {
                res.CurrentGradingPeriod = GradingPeriodViewData.Create(currentGradingPeriod);
            }

            decimal posibleDailyAttendanceCount = 0, dailyLates = 0, dailyAbsents = 0, dailyPresents = 0;

            if (attendanceSummary.DailyAttendanceSummary != null)
            {
                posibleDailyAttendanceCount = attendanceSummary.DailyAttendanceSummary.PosibleAttendanceCount;
                dailyLates    = attendanceSummary.DailyAttendanceSummary.Tardies ?? 0;
                dailyAbsents  = attendanceSummary.DailyAttendanceSummary.Absences ?? 0;
                dailyPresents = attendanceSummary.DailyAttendanceSummary.Presents ?? 0;
            }
            res.Absences = PrepareAttendanceBox(dailyAbsents, posibleDailyAttendanceCount, attendanceSummary.ClassAttendanceSummaries, x => x.Absences, 5);
            res.Lates    = PrepareAttendanceBox(dailyLates, posibleDailyAttendanceCount, attendanceSummary.ClassAttendanceSummaries, x => x.Tardies, 10);
            res.Presents = PrepareAttendanceBox(dailyPresents, posibleDailyAttendanceCount, attendanceSummary.ClassAttendanceSummaries, x => x.Presents, 0, true);
            return(res);
        }
コード例 #2
0
        public StudentAttendanceSummary GetStudentAttendanceSummary(int studentId, int?gradingPeriodId)
        {
            DateTime startDate, endDate;

            ((DemoGradingPeriodService)ServiceLocator.GradingPeriodService).GetDateRangeByGpID(gradingPeriodId, out startDate, out endDate);
            var syId             = ServiceLocator.SchoolYearService.GetCurrentSchoolYear().Id;
            var student          = ServiceLocator.StudentService.GetById(studentId, syId);
            var classes          = ServiceLocator.ClassService.GetStudentClasses(syId, studentId);
            var sectionSummaries = GetSectionAttendanceSummary(studentId, startDate, endDate);
            var res = new StudentAttendanceSummary
            {
                Student = student,
                ClassAttendanceSummaries = new List <StudentClassAttendanceSummary>()
            };

            foreach (var classDetailse in classes)
            {
                var sectionSummay = sectionSummaries.FirstOrDefault(x => x.SectionId == classDetailse.Id);
                if (sectionSummay != null)
                {
                    var studentSectionSummary = sectionSummay.Students.FirstOrDefault(s => s.StudentId == studentId && s.SectionId == classDetailse.Id);
                    if (studentSectionSummary == null)
                    {
                        continue;
                    }
                    res.ClassAttendanceSummaries.Add(StudentClassAttendanceSummary.Create(studentSectionSummary, classDetailse));
                }
            }
            return(res);
        }
コード例 #3
0
        public StudentAttendanceSummary GetStudentAttendanceSummary(int studentId, int?gradingPeriodId)
        {
            var syId     = ServiceLocator.SchoolYearService.GetCurrentSchoolYear().Id;
            var student  = ServiceLocator.StudentService.GetById(studentId, syId);
            var stiModel = ConnectorLocator.StudentConnector.GetStudentAttendanceSummary(studentId, syId, gradingPeriodId);

            int?mpId = null;

            if (gradingPeriodId.HasValue)
            {
                var gp = ServiceLocator.GradingPeriodService.GetGradingPeriodById(gradingPeriodId.Value);
                mpId = gp.MarkingPeriodRef;
            }
            var classes = ServiceLocator.ClassService.GetStudentClasses(syId, studentId, mpId);
            var res     = new StudentAttendanceSummary {
                Student = student
            };

            if (stiModel != null)
            {
                if (stiModel.DailyAttendance != null)
                {
                    res.DailyAttendanceSummary = StudentDailyAttendanceSummary.Create(stiModel.DailyAttendance);
                }
                if (stiModel.PeriodAttendance != null)
                {
                    res.ClassAttendanceSummaries = StudentClassAttendanceSummary.Create(stiModel.PeriodAttendance.ToList(), classes);
                }
            }
            return(res);
        }
コード例 #4
0
        public async Task <AttendanceSummary> GetAttendanceSummary(int teacherId, GradingPeriod gradingPeriod)
        {
            var classes = ServiceLocator.ClassService.GetTeacherClasses(gradingPeriod.SchoolYearRef, teacherId, gradingPeriod.MarkingPeriodRef);

            if (classes.Count == 0)
            {
                return(new AttendanceSummary
                {
                    ClassesDaysStat = new List <ClassDailyAttendanceSummary>(),
                    Students = new List <StudentAttendanceSummary>()
                });
            }
            var classesIds                = classes.Select(x => x.Id).ToList();
            var attSummarytask            = ConnectorLocator.AttendanceConnector.GetSectionAttendanceSummary(classesIds, gradingPeriod.StartDate, gradingPeriod.EndDate);
            var students                  = ServiceLocator.StudentService.GetTeacherStudents(teacherId, gradingPeriod.SchoolYearRef);
            var sectionsAttendanceSummary = await attSummarytask;
            var res = new AttendanceSummary();
            var dailySectionAttendances = new List <DailySectionAbsenceSummary>();
            var studentAtts             = new List <StudentSectionAbsenceSummary>();
            var sectionStSet            = new HashSet <Pair <int, int> >();
            var sectionDaySet           = new HashSet <Pair <int, DateTime> >();

            foreach (var sectionAttendanceSummary in sectionsAttendanceSummary)
            {
                foreach (var dailySectionAtt in sectionAttendanceSummary.Days)
                {
                    var pair = new Pair <int, DateTime>(dailySectionAtt.SectionId, dailySectionAtt.Date);
                    if (!sectionDaySet.Contains(pair))
                    {
                        sectionDaySet.Add(pair);
                        dailySectionAttendances.Add(dailySectionAtt);
                    }
                }
                foreach (var student in sectionAttendanceSummary.Students)
                {
                    var pair = new Pair <int, int>(student.SectionId, student.StudentId);
                    if (!sectionStSet.Contains(pair))
                    {
                        sectionStSet.Add(pair);
                        studentAtts.Add(student);
                    }
                }
            }
            studentAtts         = studentAtts.Where(x => classesIds.Contains(x.SectionId)).ToList();
            res.ClassesDaysStat = ClassDailyAttendanceSummary.Create(dailySectionAttendances, classes);
            res.Students        = StudentAttendanceSummary.Create(studentAtts, students, classes);
            return(res);
        }
コード例 #5
0
        public async Task <AttendanceSummary> GetAttendanceSummary(int teacherId, GradingPeriod gradingPeriod)
        {
            Trace.Assert(Context.SchoolYearId.HasValue);
            var classes    = ServiceLocator.ClassService.GetTeacherClasses(gradingPeriod.SchoolYearRef, teacherId, gradingPeriod.MarkingPeriodRef);
            var classesIds = classes.Select(x => x.Id).ToList();
            var students   = ServiceLocator.StudentService.GetTeacherStudents(teacherId, Context.SchoolYearId.Value);
            var sectionsAttendanceSummary = GetSectionAttendanceSummary(classesIds, gradingPeriod.StartDate, gradingPeriod.EndDate);
            var res = new AttendanceSummary();
            var dailySectionAttendances = new List <DailySectionAbsenceSummary>();
            var studentAtts             = new List <StudentSectionAbsenceSummary>();

            foreach (var sectionAttendanceSummary in sectionsAttendanceSummary)
            {
                dailySectionAttendances.AddRange(sectionAttendanceSummary.Days);
                studentAtts.AddRange(sectionAttendanceSummary.Students);
            }
            res.ClassesDaysStat = ClassDailyAttendanceSummary.Create(dailySectionAttendances, classes);
            studentAtts         = studentAtts.Where(x => classesIds.Contains(x.SectionId)).ToList();
            res.Students        = StudentAttendanceSummary.Create(studentAtts, students, classes);
            return(res);
        }
コード例 #6
0
        private void Init()
        {
            #region Filling AttendanceData Test Data

            AttendanceData = new Dictionary <int, StudentAttendance>();

            var attendanceEntries = new List <AttendanceEntry>();

            var attendanceEntry1 = new AttendanceEntry
            {
                StudentNo         = 1,
                Student           = "Alex",
                Course            = "Test001 (T-1)",
                TermBeginDate     = new DateTime(2011, 2, 16),
                ClassDate         = new DateTime(2011, 2, 16),
                ClassStartTime    = new DateTime(1899, 12, 30, 5, 30, 0),
                ClassEndTime      = new DateTime(1899, 12, 30, 9, 30, 0),
                ClassHours        = "4",
                Complete          = "Y",
                AttendanceHours   = 4,
                CourseDescription = "This is test 1 course.",
                AttendanceCode    = "P",
                AttendedAdj       = 4,
                ScheduledAdj      = 4
            };

            var attendanceEntry2 = new AttendanceEntry
            {
                StudentNo         = 1,
                Student           = "Alex",
                Course            = "Test001 (T-1)",
                TermBeginDate     = new DateTime(2011, 2, 16),
                ClassDate         = new DateTime(2011, 2, 17),
                ClassStartTime    = new DateTime(1899, 12, 30, 5, 30, 0),
                ClassEndTime      = new DateTime(1899, 12, 30, 9, 30, 0),
                ClassHours        = "4",
                Complete          = "Y",
                AttendanceHours   = 4,
                CourseDescription = "This is test 1 course.",
                AttendanceCode    = "P",
                AttendedAdj       = 4,
                ScheduledAdj      = 4
            };

            var attendanceEntry3 = new AttendanceEntry
            {
                StudentNo         = 1,
                Student           = "Alex",
                Course            = "Test002 (T-2)",
                TermBeginDate     = new DateTime(2011, 2, 16),
                ClassDate         = new DateTime(2011, 3, 10),
                ClassStartTime    = null,
                ClassEndTime      = null,
                ClassHours        = "0",
                Complete          = "Y",
                AttendanceHours   = 3,
                CourseDescription = "This is test 3 course.",
                AttendanceCode    = "P",
                AttendedAdj       = 3,
                ScheduledAdj      = 3
            };

            attendanceEntries.Add(attendanceEntry1);
            attendanceEntries.Add(attendanceEntry2);
            attendanceEntries.Add(attendanceEntry3);

            var studentAttendance = new StudentAttendance(attendanceEntries);
            AttendanceData.Add(1, studentAttendance);


            attendanceEntry1 = new AttendanceEntry
            {
                StudentNo         = 2,
                Student           = "Ben",
                Course            = "Test011 (T-11)",
                TermBeginDate     = new DateTime(2011, 3, 8),
                ClassDate         = new DateTime(2011, 3, 8),
                ClassStartTime    = new DateTime(1899, 12, 30, 5, 30, 0),
                ClassEndTime      = new DateTime(1899, 12, 30, 9, 30, 0),
                ClassHours        = "4",
                Complete          = "Y",
                AttendanceHours   = 4,
                CourseDescription = "This is a test 11 course.",
                AttendanceCode    = "P",
                AttendedAdj       = 4,
                ScheduledAdj      = 4
            };

            attendanceEntry2 = new AttendanceEntry
            {
                StudentNo         = 2,
                Student           = "Ben",
                Course            = "Test012 (T-12)",
                TermBeginDate     = new DateTime(2011, 3, 8),
                ClassDate         = new DateTime(2011, 3, 9),
                ClassStartTime    = new DateTime(1899, 12, 30, 5, 30, 0),
                ClassEndTime      = new DateTime(1899, 12, 30, 9, 30, 0),
                ClassHours        = "4",
                Complete          = "Y",
                AttendanceHours   = 4,
                CourseDescription = "This is a test 2 course.",
                AttendanceCode    = "P",
                AttendedAdj       = 4,
                ScheduledAdj      = 4
            };

            attendanceEntry3 = new AttendanceEntry
            {
                StudentNo         = 2,
                Student           = "Ben",
                Course            = "Test013 (T-13)",
                TermBeginDate     = new DateTime(2011, 3, 8),
                ClassDate         = new DateTime(2011, 3, 22),
                ClassStartTime    = null,
                ClassEndTime      = null,
                ClassHours        = "4",
                Complete          = "Y",
                AttendanceHours   = 4,
                CourseDescription = "This is a test 13 course.",
                AttendanceCode    = "P",
                AttendedAdj       = 4,
                ScheduledAdj      = 4
            };

            attendanceEntries = new List <AttendanceEntry> {
                attendanceEntry1, attendanceEntry2, attendanceEntry3
            };
            studentAttendance = new StudentAttendance(attendanceEntries);
            AttendanceData.Add(2, studentAttendance);

            #endregion

            SummaryData = new Dictionary <int, StudentAttendanceSummary>();

            var attendanceSummary1 = new AttendanceSummary();
            attendanceSummary1.StudentNo          = 1;
            attendanceSummary1.Student            = "Alex";
            attendanceSummary1.Course             = "Test001 (T-1)";
            attendanceSummary1.CourseDescription  = "This is Test 1 Course";
            attendanceSummary1.TermBeginDate      = new DateTime(2011, 2, 16);
            attendanceSummary1.ScheduledTotal     = 8;
            attendanceSummary1.ScheduledToDate    = 8;
            attendanceSummary1.AttendedToDate     = 8;
            attendanceSummary1.AttendedPercentage = ((attendanceSummary1.AttendedToDate * 100) / attendanceSummary1.ScheduledToDate);


            var attendanceSummary2 = new AttendanceSummary();
            attendanceSummary2.StudentNo          = 1;
            attendanceSummary2.Student            = "Alex";
            attendanceSummary2.Course             = "Test002 (T-2)";
            attendanceSummary2.CourseDescription  = "This is Test 2 Course";
            attendanceSummary2.TermBeginDate      = new DateTime(2011, 2, 16);
            attendanceSummary2.ScheduledTotal     = 3;
            attendanceSummary2.ScheduledToDate    = 3;
            attendanceSummary2.AttendedToDate     = 3;
            attendanceSummary2.AttendedPercentage = ((attendanceSummary2.AttendedToDate * 100) / attendanceSummary2.ScheduledToDate);

            var summary = new StudentAttendanceSummary(new[] { attendanceSummary1, attendanceSummary2 });

            SummaryData.Add(1, summary);


            attendanceSummary1                    = new AttendanceSummary();
            attendanceSummary1.StudentNo          = 2;
            attendanceSummary1.Student            = "Ben";
            attendanceSummary1.Course             = "Test011 (T-11)";
            attendanceSummary1.CourseDescription  = "This is Test 11 Course";
            attendanceSummary1.TermBeginDate      = new DateTime(2011, 2, 16);
            attendanceSummary1.ScheduledTotal     = 8;
            attendanceSummary1.ScheduledToDate    = 8;
            attendanceSummary1.AttendedToDate     = 8;
            attendanceSummary1.AttendedPercentage = ((attendanceSummary1.AttendedToDate * 100) / attendanceSummary1.ScheduledToDate);


            attendanceSummary2                    = new AttendanceSummary();
            attendanceSummary2.StudentNo          = 2;
            attendanceSummary2.Student            = "Ben";
            attendanceSummary2.Course             = "Test012 (T-12)";
            attendanceSummary2.CourseDescription  = "This is Test 12 Course";
            attendanceSummary2.TermBeginDate      = new DateTime(2011, 2, 16);
            attendanceSummary2.ScheduledTotal     = 12;
            attendanceSummary2.ScheduledToDate    = 12;
            attendanceSummary2.AttendedToDate     = 12;
            attendanceSummary2.AttendedPercentage = ((attendanceSummary2.AttendedToDate * 100) / attendanceSummary2.ScheduledToDate);

            summary = new StudentAttendanceSummary(new[] { attendanceSummary1, attendanceSummary2 });
            SummaryData.Add(2, summary);
        }