コード例 #1
0
        public void ChargeVehicle(string i_LicenseNumber, float i_HoursToFill)
        {
            bool vehicleExists = r_AllVehicles.TryGetValue(i_LicenseNumber, out Vehicle requestedVehicle);

            if (vehicleExists)
            {
                ElectricEngine thisElectricEngine = requestedVehicle.VehicleEngine as ElectricEngine;
                if (thisElectricEngine != null)
                {
                    if (thisElectricEngine.MaxEnergyCapacity > thisElectricEngine.CurrentEnergyCapacity)
                    {
                        if (thisElectricEngine.MaxEnergyCapacity
                            < i_HoursToFill + thisElectricEngine.CurrentEnergyCapacity || i_HoursToFill <= 0)
                        {
                            float maxAmountToFill = thisElectricEngine.MaxEnergyCapacity
                                                    - thisElectricEngine.CurrentEnergyCapacity;
                            throw new ValueOutOfRangeException(@"Invalid amount to fill", 0, maxAmountToFill);
                        }

                        thisElectricEngine.ChargeBattery(i_HoursToFill);
                    }
                }
                else
                {
                    throw new KeyNotFoundException(@"This is not an electric vehicle");
                }
            }
            else
            {
                throw new KeyNotFoundException(@"This vehicle is not it the garage");
            }
        }
コード例 #2
0
ファイル: Garage.cs プロジェクト: guybiecher/C--HW
 public void ChargeVehicle(string i_LicenseNumber, float i_ChargeAmmountInMinutes)
 {
     if (m_VechicleRecords[i_LicenseNumber].Vehicle.Engine is ElectricEngine)
     {
         ElectricEngine electricEngine = m_VechicleRecords[i_LicenseNumber].Vehicle.Engine as ElectricEngine;
         electricEngine.ChargeBattery(i_ChargeAmmountInMinutes / k_ParseMinuteToHours);
     }
     else
     {
         throw new ArgumentException("Trying to charge vechicle with fuel engine");
     }
 }
コード例 #3
0
        public void FillElectric(string i_LicenseId, int i_AmountOfMinutes)
        {
            float          toHour = i_AmountOfMinutes / 60f;
            ElectricEngine eng    = m_Vehicles[i_LicenseId].Vehicle.Engine as ElectricEngine;

            if (eng == null)
            {
                throw new ArgumentException(string.Format(k_NotElectricVehicle, i_LicenseId, Environment.NewLine));
            }

            eng.ChargeBattery(toHour);
        }
コード例 #4
0
        public void ChargeElectricVehicle(string i_LicensePlateNumber, float i_HoursToCharge)
        {
            ElectricEngine electricEngine = r_Vehicles[i_LicensePlateNumber].Engine as ElectricEngine;

            if (electricEngine != null)
            {
                electricEngine.ChargeBattery(i_HoursToCharge);
            }
            else
            {
                throw new ArgumentException();
            }

            r_Vehicles[i_LicensePlateNumber].UpdateVehicleEngineEnergyPrecentage();
        }
コード例 #5
0
        public void ChargeElectricVehicleBattery(string i_LicenseNumber, float i_HoursToCharge)
        {
            ElectricEngine engine = m_GarageVehicles[i_LicenseNumber].OwnerVehicle.VehicleEngine as ElectricEngine;

            engine.ChargeBattery(i_HoursToCharge);
        }