Example #1
0
        private static void fillFuelInVehicle()
        {
            float fuelToFill;

            Console.WriteLine("Please enter registration plate number: ");
            string plateNumber = Console.ReadLine();

            if (s_Garage.GetVehicleEnergyType(plateNumber) is ElectricBattery)
            {
                Console.WriteLine(string.Format("An electric vehicle, please choose another vehicle"));
            }
            else
            {
                Energy.eEnergyType energyType = (Energy.eEnergyType)getUserChoiceFromEnumValues(typeof(FuelTank.eFuelType));
                Console.WriteLine("Please enter how many liters of fuel to add: ");
                string fuelAmountAsString = Console.ReadLine();
                if (!float.TryParse(fuelAmountAsString, out fuelToFill))
                {
                    throw new FormatException();
                }

                s_Garage.FuelOrChargeVehicle(plateNumber, energyType, fuelToFill);
                Console.WriteLine("Fuel was added successfully");
            }
        }
Example #2
0
        public void FuelOrChargeVehicle(string i_PlateNumber, Energy.eEnergyType i_EnergyType, float i_AmountToFill)
        {
            Energy.eEnergyType m_EnergyType = i_EnergyType;
            GarageVehicle vehicleToFillEnergy = getVehicleFromDictionary(i_PlateNumber);
            if (vehicleToFillEnergy == null)
            {
                throw new ArgumentException(string.Format("Vehicle with registration plate number {0} not found ", i_PlateNumber));
            }

            else if (vehicleToFillEnergy.Vehicle.EnergyType is ElectricBattery)
            {
                (vehicleToFillEnergy.Vehicle.EnergyType as ElectricBattery).Charge(i_AmountToFill);
            }
            else if (vehicleToFillEnergy.Vehicle.EnergyType is FuelTank)
            {
                FuelTank.eFuelType m_fuelType = (FuelTank.eFuelType)Enum.Parse(typeof(FuelTank.eFuelType), m_EnergyType.ToString());
                (vehicleToFillEnergy.Vehicle.EnergyType as FuelTank).FillTank(i_AmountToFill, m_fuelType);
            }
            else
            {
                throw new ArgumentException("Energy type is incompatible");
            }

        }
Example #3
0
        public static Motorcycle CreateMotorCycle(string i_LicensePlate, string i_Model, Dictionary <eVehicleData, string> i_DataMemory, Dictionary <Vehicle.eWheelData, string> i_Wheel, Energy.eEnergyType i_EnergyType)
        {
            checkNumericStrings(i_DataMemory[eVehicleData.EngineCapacity]);
            Motorcycle.eLicenseType licenceType = Motorcycle.parseLicenseType(i_DataMemory[eVehicleData.LicenceType]);
            int    engineCapacity = int.Parse(i_DataMemory[eVehicleData.EngineCapacity]);
            Energy energyType     = null;

            if (i_EnergyType == Energy.eEnergyType.Regular)
            {
                checkNumericStrings(i_DataMemory[eVehicleData.AmountOfFuelLeft]);
                energyType = new RegularEnergy(RegularEnergy.eFuelType.Octan95, float.Parse(i_DataMemory[eVehicleData.AmountOfFuelLeft]), k_RegularMotorcycleFullTank);
            }
            else if (i_EnergyType == Energy.eEnergyType.Electric)
            {
                checkNumericStrings(i_DataMemory[eVehicleData.HoursLeftInBattery]);
                energyType = new ElectricEnergy(float.Parse(i_DataMemory[eVehicleData.HoursLeftInBattery]), k_ElectricMotorcycleMaxBatteryHourTime);
            }

            return(new Motorcycle(licenceType, engineCapacity, i_Model, i_LicensePlate, i_Wheel, energyType));
        }
Example #4
0
        public static Truck CreateTruck(string i_LicensePlate, string i_Model, Dictionary <eVehicleData, string> i_DataMemory, Dictionary <Vehicle.eWheelData, string> i_Wheel, Energy.eEnergyType i_EnergyType)
        {
            checkNumericStrings(i_DataMemory[eVehicleData.CargoVolume], i_DataMemory[eVehicleData.AmountOfFuelLeft]);
            bool  isHavingHazardousMeterials = Truck.parseHazardousMeterials(i_DataMemory[eVehicleData.HavingHazardousMeterials]);
            float cargoVolume = float.Parse(i_DataMemory[eVehicleData.CargoVolume]);

            Energy energyType = new RegularEnergy(RegularEnergy.eFuelType.Soler, float.Parse(i_DataMemory[eVehicleData.AmountOfFuelLeft]), k_RegularTruckFullTank);

            return(new Truck(isHavingHazardousMeterials, cargoVolume, i_Model, i_LicensePlate, i_Wheel, energyType));
        }
Example #5
0
        public static Car CreateCar(string i_LicensePlate, string i_Model, Dictionary <eVehicleData, string> i_DataMemory, Dictionary <Vehicle.eWheelData, string> i_Wheel, Energy.eEnergyType i_EnergyType)
        {
            checkNumericStrings(i_DataMemory[eVehicleData.NumOfDoors]);
            Car.eColorType color      = Car.parseColor(i_DataMemory[eVehicleData.Color]);
            int            numOfDoors = Car.parseNumOfDoors(i_DataMemory[eVehicleData.NumOfDoors]);
            Energy         energyType = null;

            if (i_EnergyType == Energy.eEnergyType.Regular)
            {
                checkNumericStrings(i_DataMemory[eVehicleData.AmountOfFuelLeft]);
                energyType = new RegularEnergy(RegularEnergy.eFuelType.Octan96, float.Parse(i_DataMemory[eVehicleData.AmountOfFuelLeft]), k_RegualrCarFullTank);
            }
            else if (i_EnergyType == Energy.eEnergyType.Electric)
            {
                checkNumericStrings(i_DataMemory[eVehicleData.HoursLeftInBattery]);
                energyType = new ElectricEnergy(float.Parse(i_DataMemory[eVehicleData.HoursLeftInBattery]), k_ElectricCarMaxBatteryHourTime);
            }

            return(new Car(color, numOfDoors, i_Model, i_LicensePlate, i_Wheel, energyType));
        }