Exemple #1
0
 public static VehicleRecord AddCheckInInfoForVehicle(VehicleRecord vehicle)
 {
     vehicle.CheckIn       = DateTime.Now.ToLocalTime();
     vehicle.ParkingLotId  = Settings.ParkingLotId;
     vehicle.BaseFee       = GetBaseFee(vehicle.VehicleType);
     vehicle.AdditionalFee = GetFee(vehicle.VehicleType);
     vehicle.HelmetsFee    = GetHelmetsFee();
     return(vehicle);
 }
Exemple #2
0
        private static int CalculateAdditionalHours(VehicleRecord vehicle)
        {
            var difference = vehicle.CheckOut - vehicle.CheckIn;
            var hours      = difference.Hours;
            var minutes    = difference.Minutes;

            if (hours > 0 && minutes <= hourToleranceInMinutes)
            {
                hours--;
            }

            return(hours > 0 ? hours : 0);
        }
Exemple #3
0
        public static VehicleRecord AddCheckOutInfoForVehicle(VehicleRecord vehicle)
        {
            vehicle.CheckOut = DateTime.Now.ToLocalTime();
            vehicle.Done     = true;

            var baseFee         = GetBaseFee(vehicle.VehicleType);
            var additionalHours = CalculateAdditionalHours(vehicle);
            var additionalFee   = additionalHours * GetFee(vehicle.VehicleType);
            var helmetsFee      = CalculateHelmetsFee(vehicle);

            var totalFee = baseFee + additionalFee + helmetsFee;

            totalFee = totalFee > 0 ? totalFee : 0;

            vehicle.BaseFee         = baseFee;
            vehicle.AdditionalHours = additionalHours;
            vehicle.AdditionalFee   = additionalFee;
            vehicle.HelmetsFee      = helmetsFee;
            vehicle.Fee             = totalFee;

            return(vehicle);
        }
Exemple #4
0
 private static double CalculateHelmetsFee(VehicleRecord vehicle)
 {
     return(GetHelmetsFee() * vehicle.Helmets);
 }