Esempio n. 1
0
        public static IParkingStrategy Create(ParkingStrategyType strategyType, int startHours, int startMinutes,
                                              int endHours, int endMinutes, double charge, ChargingUnit chargingUnit, IParkingIntervalCalculator parkingIntervalCalculator)
        {
            switch (strategyType)
            {
            case ParkingStrategyType.LongStay: return(new LongStayParkingStrategy(startHours, startMinutes, endHours, endMinutes, charge, chargingUnit, parkingIntervalCalculator));

            case ParkingStrategyType.ShortStay: return(new ShortStayParkingStrategy(startHours, startMinutes, endHours, endMinutes, charge, chargingUnit, parkingIntervalCalculator));

            default: return(null);
            }
        }
Esempio n. 2
0
        public double CalculateParkingCharge(ParkingStrategyType parkingVisitType, DateTime startTime, DateTime endTime)
        {
            var strategy = ParkingStrategies.Where(s => s.Key == parkingVisitType).FirstOrDefault();

            return(strategy.Value.CalculateCharge(startTime, endTime));
        }