public void ReCharge(string i_PlateNumber, float i_MinutesAmount) { if (r_VehiclesStorage.ContainsKey(i_PlateNumber) == true) { Vehicle currentVehicle = r_VehiclesStorage[i_PlateNumber].Vehicle; if (currentVehicle.Engine.Type == eEngineType.Electric) { ElectricEngine currentEngine = currentVehicle.Engine as ElectricEngine; if (currentEngine.CurrentEnergyCapacity + i_MinutesAmount <= currentEngine.MaxEnergyCapacity) { currentEngine.ReCharge(i_MinutesAmount); currentVehicle.EnergyPresentage = (currentEngine.CurrentEnergyCapacity / currentEngine.MaxEnergyCapacity) * 100; } else { throw new ValueOutOfRangeException(0, currentEngine.MaxEnergyCapacity - currentEngine.CurrentEnergyCapacity, "Exceeding the maximum charge capacity!"); } } else { throw new ArgumentException("Engine Type mismatch! Please Enter Electric Car Plate Number"); } } else { throw new ArgumentException("Vehicle does not exist in the garage!"); } }
public void ChargeVehicle(string i_LicenseNumber, string i_AmountToCharge) { Vehicle vehicle; vehicle = m_VehicleDetailsList[i_LicenseNumber].Vehicle; checkVehicleIsElectricType(vehicle); ElectricEngine engine = vehicle.VehicleEngine as ElectricEngine; engine.ReCharge(float.Parse(i_AmountToCharge)); }