public ParkingCalculatorFactory(ParkingAppContext context)
        {
            foreach (var rate in context.FlatParkingRates)
            {
                _parkingRules.Add(new FlatRateCondition(rate.EntryTimeStart, rate.EntryTimeEnd, rate.ExitTimeStart, rate.ExitTimeEnd), new FlatRateParkingChargeCalculator(rate.Description, rate.Charge));
            }

            HourlyChargeRates hourlyRates = new HourlyChargeRates();

            foreach (var rate in context.HourlyRates)
            {
                hourlyRates.Add(rate.HourLimit, rate.Charge);
            }
            _parkingRules.Add(
                new HourlyRateCondition(hourlyRates),
                new HourlyRateParkingChargeCalculator("Hourly Rate", hourlyRates));

            _parkingRules.Add(
                new DailyRateCondition(),
                new DailyRateParkingChargeCalculator("Daily Rate", context.DailyRates.First().Charge));
        }
Пример #2
0
 public HourlyRateParkingChargeCalculator(string friendlyName, HourlyChargeRates hourlyRates) : base(friendlyName)
 {
     _hourlyRates = hourlyRates;
 }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="hourlyRates">Hourly rates must be supplied</param>
 public HourlyRateCondition(HourlyChargeRates hourlyRates)
 {
     HourlyRates = hourlyRates;
 }