private void InitializFuelEngine()
        {
            FuelEngine.eFuelType FuelType;
            float AmountOfFuel = UserCommunicator.getFloatFromUser("How much fuel do you have left");
            float MaxFuelAmount;

            switch (m_DataBase.m_VehicleType)
            {
            case eVehicleType.Car:
                MaxFuelAmount = 45.0f;
                FuelType      = FuelEngine.eFuelType.Octan98;
                break;

            case eVehicleType.Truck:
                MaxFuelAmount = 115.0f;
                FuelType      = FuelEngine.eFuelType.Octan96;
                break;

            default:         // eVehicleType.MotorCycle
                MaxFuelAmount = 6.0f;
                FuelType      = FuelEngine.eFuelType.Octan96;
                break;
            }

            m_DataBase.m_FuelType      = FuelType;
            m_DataBase.m_AmountOfFuel  = AmountOfFuel;
            m_DataBase.m_MaxFuelAmount = MaxFuelAmount;
        }
        private void FuelUp()
        {
            string plateNumber = getPlateNumber();
            bool   fueled      = m_Garage.isCustomerEnrolled(plateNumber);

            if (fueled)
            {
                float fuel = UserCommunicator.getFloatFromUser("How much fuel to put in");
                FuelEngine.eFuelType type = UserCommunicator.toFuelType(
                    UserCommunicator.getStringThatEqualsOneOf("Fuel Type",
                                                              new string[] { "Soler", "Octan95", "Octan96", "Octan98" }, false));

                try
                {
                    fueled = m_Garage.FuelVehicle(plateNumber, fuel, type);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Wrong arguments, vehicles haven't been fueled up.");
                }
            }
            else
            {
                printNotEnrolled();
            }
        }
        private void InitializeTruck()
        {
            bool  RiskyMaterials = UserCommunicator.getBoolFromUser("Does your truck carry risky materials");
            float MaxCarry       = UserCommunicator.getFloatFromUser("Your truck's max weight carry");

            m_DataBase.m_RiskyMaterials = RiskyMaterials;
            m_DataBase.m_MaxCarry       = MaxCarry;
        }
        private void InitializElectricEngine()
        {
            float BatteryTimeLeft = UserCommunicator.getFloatFromUser("Your electric engine's battery's remaining time");
            float MaxBatteryLife;

            switch (m_DataBase.m_VehicleType)
            {
            case eVehicleType.Car:
                MaxBatteryLife = 3.2f;
                break;

            default:         // eVehicleType.MotorCycle
                MaxBatteryLife = 1.8f;
                break;
            }

            m_DataBase.m_BatteryTimeLeft = BatteryTimeLeft;
            m_DataBase.m_MaxBatteryLife  = MaxBatteryLife;
        }
        private void chargeUpElectric()
        {
            string plateNumber = getPlateNumber();
            bool   charged     = m_Garage.isCustomerEnrolled(plateNumber);

            if (charged)
            {
                float amount = UserCommunicator.getFloatFromUser("How much to charge");
                try
                {
                    charged = m_Garage.ChargeVehicle(plateNumber, amount);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Wrong arguments, vehicles haven't been charged");
                }
            }
            else
            {
                printNotEnrolled();
            }
        }