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)); }
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)); }
public ActionResult <CarparkRate> PostRate([FromBody] CarparkDuriation duriation) { return(GetRate(duriation)); }