Beispiel #1
0
        public static bool IsMatch(this FlatRatePriceModel rate, ParkingTimeModel parkingTimes)
        {
            var entryMatch    = rate.EntryTimeRange.MatchesHourRange(parkingTimes.Entry);
            var exitMatch     = rate.ExitTimeRange.MatchesHourRange(parkingTimes.Exit);
            var exitRuleMatch = rate.PassesExitTimeRule(parkingTimes);

            return(entryMatch && exitMatch && exitRuleMatch);
        }
Beispiel #2
0
        public static bool PassesExitTimeRule(this FlatRatePriceModel rate, ParkingTimeModel parkingTimes)
        {
            switch (rate.ExitTimeRule)
            {
            case TimeRangeRule.SAMEDAY:
                return(parkingTimes.Entry.Date == parkingTimes.Exit.Date);

            case TimeRangeRule.SAMEORNEXTDAY:
                return(parkingTimes.Entry.Date == parkingTimes.Exit.Date || parkingTimes.Entry.AddDays(1).Date == parkingTimes.Exit.Date);

            default:
                return(true);
            }
        }