コード例 #1
0
        static public bool CheckGymnasiumUsage(WorkDay context, int hour)
        {
            var swipes = context.SwipesAtAccessPoint("Gym");

            if (swipes.Count == 0)
            {
                return(true);
            }

            var validationStatus = true;

            var d = context.Date;

            var dayStart = new DateTime(d.Year, d.Month, d.Day, 9, 0, 0);
            var dayEnd   = new DateTime(d.Year, d.Month, d.Day, hour, 0, 0);
            var grace    = TimeSpan.FromMinutes(5);

            foreach (var s in swipes)
            {
                if (s.EventTime > (dayStart + grace) && s.EventTime < (dayEnd - grace))
                {
                    context.Violations.Add(new WorkTimeViolation(WorkTimeViolationType.TimeSlotViolation_GymnasiumUsedDuringWorkHours, swipes));
                    validationStatus = false;
                    break;
                }
            }

            return(validationStatus);
        }
コード例 #2
0
        public bool Validate(WorkDay context)
        {
            var swipes = context.SwipesAtAccessPoint("Recreation");

            if (swipes.Count == 0)
            {
                return(true);
            }

            var validationStatus = true;

            if (context.OutsidePremisesTimeSpan + context.RecreationTimeSpan > TimeSpan.FromMinutes(45))
            {
                context.Violations.Add(new WorkTimeViolation(WorkTimeViolationType.TimeDurationViolation_RecreationLunchTimeMoreThan45Min, swipes));
            }

            var d = context.Date;

            var lunchSlotStart = new DateTime(d.Year, d.Month, d.Day, 13, 0, 0);
            var lunchSlotEnd   = new DateTime(d.Year, d.Month, d.Day, 14, 0, 0);
            var dayEnd         = new DateTime(d.Year, d.Month, d.Day, 18, 0, 0);
            var grace          = TimeSpan.FromMinutes(5);

            foreach (var s in swipes)
            {
                if (s.EventTime < (lunchSlotStart - grace))
                {
                    context.Violations.Add(new WorkTimeViolation(WorkTimeViolationType.TimeSlotViolation_RecreationLunchTime, swipes));
                    validationStatus = false;
                    break;
                }
                else if (s.EventTime > (lunchSlotEnd + grace) && s.EventTime < dayEnd)
                {
                    context.Violations.Add(new WorkTimeViolation(WorkTimeViolationType.TimeSlotViolation_RecreationLunchTime, swipes));
                    validationStatus = false;
                    break;
                }
            }

            return(validationStatus);
        }