コード例 #1
0
        public static AttendanceStatusEnum ParseInOrOut(AttendanceTypeEnum attendanceType)
        {
            switch (attendanceType)
            {
            case AttendanceTypeEnum.AttendanceIn:
            case AttendanceTypeEnum.AttendanceFlagIn: return(AttendanceStatusEnum.In);

            case AttendanceTypeEnum.AttendanceOut:
            case AttendanceTypeEnum.AttendanceFlagOut: return(AttendanceStatusEnum.Out);

            case AttendanceTypeEnum.AttendanceFlagRdyOut: return(AttendanceStatusEnum.WaitOut);

            case AttendanceTypeEnum.AttendanceFlagRdyIn: return(AttendanceStatusEnum.WaitIn);

            default: return(AttendanceStatusEnum.UnKnown);
            }
        }
コード例 #2
0
        public static IList <ShortAttendanceStatViewData> Create(IList <DailyAttendanceSummary> dailyAttendanceSummaries, AttendanceTypeEnum type, DateTime currentDate)
        {
            var    res       = new List <ShortAttendanceStatViewData>();
            string prevMonth = "";

            //get only for last month
            var fromDate = currentDate.AddDays(-31);

            dailyAttendanceSummaries = dailyAttendanceSummaries.Where(x => x.Date >= fromDate && x.Date <= currentDate).ToList();

            foreach (var dailyAttendanceSummary in dailyAttendanceSummaries)
            {
                var attCount = 0;
                if (type == AttendanceTypeEnum.Absent)
                {
                    attCount = (int)(dailyAttendanceSummary.Absences ?? 0);
                }
                if (type == AttendanceTypeEnum.Tardies)
                {
                    attCount = dailyAttendanceSummary.Tardies ?? 0;
                }

                var    date    = dailyAttendanceSummary.Date;
                string summary = date.Day.ToString();
                if (prevMonth != date.ToString("MMM"))
                {
                    prevMonth = date.ToString("MMM");
                    summary   = prevMonth + " " + summary;
                }
                res.Add(new ShortAttendanceStatViewData
                {
                    Date         = dailyAttendanceSummary.Date,
                    StudentCount = attCount,
                    Summary      = summary
                });
            }
            return(res);
        }
コード例 #3
0
 public static IList <ClassAttendanceStatViewData> Create(IList <ClassDailyAttendanceSummary> classDailyAttendances, AttendanceTypeEnum type, DateTime currentDate)
 {
     return(classDailyAttendances.Select(x => new ClassAttendanceStatViewData
     {
         Class = ShortClassViewData.Create(x.Class),
         DayStats = ShortAttendanceStatViewData.Create(x.DailyAttendances, type, currentDate)
     }).ToList());
 }
コード例 #4
0
 public static IList <AttendanceStatByClassViewData> Create(IList <StudentClassAttendanceSummary> studentsClassAttendance, AttendanceTypeEnum type)
 {
     return(studentsClassAttendance.Select(x => Create(x, type)).ToList());
 }
コード例 #5
0
        public static AttendanceStatByClassViewData Create(StudentClassAttendanceSummary studentClassAttendance, AttendanceTypeEnum type)
        {
            var attCount = 0;

            if (type == AttendanceTypeEnum.Absent)
            {
                attCount = (int)(studentClassAttendance.Absences ?? 0);
            }
            if (type == AttendanceTypeEnum.Tardies)
            {
                attCount = studentClassAttendance.Tardies ?? 0;
            }
            return(Create(studentClassAttendance.StudentId, studentClassAttendance.Class, attCount));
        }
コード例 #6
0
        public static IList <ShortStudentAttendanceViewData> Create(IList <StudentAttendanceSummary> studentAttendanceSummaries, IList <string> alerts, AttendanceTypeEnum type)
        {
            var res = studentAttendanceSummaries.Select(x => new ShortStudentAttendanceViewData(x.Student, alerts
                                                                                                , AttendanceStatByClassViewData.Create(x.ClassAttendanceSummaries, type))).ToList();

            return(res.Where(x => x.TotalAttendanceCount > 2).OrderByDescending(x => x.TotalAttendanceCount).ToList());
        }