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); }
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); }
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); }
private static double CalculateHelmetsFee(VehicleRecord vehicle) { return(GetHelmetsFee() * vehicle.Helmets); }