예제 #1
0
        private CarparkRate GetStandardRate(CarparkDuriation duriation)
        {
            TimeSpan timeSpent = duriation.ExitTime - duriation.EntryTime;

            if (GetHours(timeSpent) <= maxHourlyHours && GetDays(timeSpent) < 1)
            {
                return(new CarparkRate("Standard Ratte", GetHours(timeSpent) * hourlyRate, CarparkRate.RateType.Hourly));
            }

            return(new CarparkRate("Standard Rate", GetDays(timeSpent) * flatDailyRate, CarparkRate.RateType.FlatRate));
        }
예제 #2
0
        private CarparkRate GetRate(CarparkDuriation duriation)
        {
            if (IsTimeBetween(duriation.EntryTime, 6, 9) && IsTimeBetween(duriation.ExitTime, 15, 23, 30, 30))
            {
                return(new CarparkRate("Early Bird", earlyRate, CarparkRate.RateType.FlatRate));
            }

            if (IsTimeBetween(duriation.EntryTime, 18, 24) && IsTimeBetween(duriation.ExitTime, 15, 23, 0, 30) && IsWeekDay(duriation.EntryTime))
            {
                return(new CarparkRate("Night Rate", nightRate, CarparkRate.RateType.FlatRate));
            }

            if (!IsWeekDay(duriation.EntryTime) && !IsWeekDay(duriation.ExitTime))
            {
                return(new CarparkRate("Weekend Rate", weekendRate, CarparkRate.RateType.FlatRate));
            }

            return(GetStandardRate(duriation));
        }
예제 #3
0
 public ActionResult <CarparkRate> PostRate([FromBody] CarparkDuriation duriation)
 {
     return(GetRate(duriation));
 }