Esempio n. 1
0
        private FuelVehicle.eFuel getFuelFromUser(FuelVehicle i_FuelVehicle, ref eExitOrCont io_ExitOrCont)
        {
            string numStr;
            int    numOfFuel;
            bool   isSuccseeded;

            FuelVehicle.eFuel correctFuelType;
            Console.WriteLine("Please enter type of fuel to add, 0 - soler, 1 - octan95, 2 - octan96, 3 - octan98, or press -1 to go back to the main menu");
            numStr = Console.ReadLine();
            putExitIfMinus1(numStr, ref io_ExitOrCont);
            isSuccseeded = int.TryParse(numStr, out numOfFuel);
            while ((!isSuccseeded || !isValidOptionType(numOfFuel) || !m_Garage.IfFuelFits(i_FuelVehicle, (FuelVehicle.eFuel)numOfFuel, out correctFuelType)) && io_ExitOrCont != eExitOrCont.Exit)
            {
                if (!isSuccseeded || !isValidOptionType(numOfFuel))
                {
                    Console.WriteLine("Wrong Choise! Please enter type of fuel to add, 0 - soler, 1 - octan95, 2 - octan96, 3 - octan98, or press -1 to go back to the main menu");
                }
                else
                {
                    m_Garage.IfFuelFits(i_FuelVehicle, (FuelVehicle.eFuel)numOfFuel, out correctFuelType);
                    Console.WriteLine(string.Format("Wrong Choise! The fuel you enterded doesn't fit the car's fuel, the correct fuel type is: {0} please pick the right one," +
                                                    " or press -1 to go back to the main menu", correctFuelType));
                }

                numStr = Console.ReadLine();
                putExitIfMinus1(numStr, ref io_ExitOrCont);
                isSuccseeded = int.TryParse(numStr, out numOfFuel);
            }

            return((FuelVehicle.eFuel)numOfFuel);
        }
Esempio n. 2
0
        private static void reFuel(string i_LicencePlate)
        {
            float      ValidLittersOfFuelToAdd;
            eFuelTypes fuelType;
            int        indexOfVehicleInGarage;

            if ((indexOfVehicleInGarage = s_MyGarage.CheckIfVehicleInGarage(i_LicencePlate)) == s_MyGarage.VehicleNotInGarage)
            {
                notRegisteredVehiclesMessages();
            }
            else
            {
                if (s_MyGarage.VehiclesInGarage[indexOfVehicleInGarage] is ElectricVehicle)
                {
                    throw new ArgumentException("NOT a fuel vehicle");
                }

                FuelVehicle feulVehicle = s_MyGarage.VehiclesInGarage[indexOfVehicleInGarage] as FuelVehicle;
                if (feulVehicle.MaxFuelTankCapacity.Equals(feulVehicle.FuelLeft))
                {
                    Console.WriteLine(MessagesEnglish.k_FullTankMessage);
                    Console.WriteLine(MessagesEnglish.k_GoingBackToMainMenuMessage);
                    Thread.Sleep(1500);
                }
                else
                {
                    ValidLittersOfFuelToAdd = enterEnergyToFill(MessagesEnglish.k_RefuelAmountMessage);
                    fuelType = (eFuelTypes)displayEnumOptions(typeof(eFuelTypes), MessagesEnglish.k_GetFuelTypeMessage);
                    try
                    {
                        s_MyGarage.Refuel(i_LicencePlate, ValidLittersOfFuelToAdd, fuelType);
                        Console.WriteLine(MessagesEnglish.k_VehicleRefueledMessage);
                        Console.WriteLine(MessagesEnglish.k_GoingBackToMainMenuMessage);
                        Thread.Sleep(1000);
                    }
                    catch (ValueOutOfRangeException vore)
                    {
                        Console.WriteLine(vore.Message);
                        Thread.Sleep(3000);
                        Ex02.ConsoleUtils.Screen.Clear();
                        reFuel(i_LicencePlate);
                    }
                    catch (ArgumentException ae)
                    {
                        Console.WriteLine(ae.Message);
                        Thread.Sleep(1500);
                        Ex02.ConsoleUtils.Screen.Clear();
                        reFuel(i_LicencePlate);
                    }
                }
            }

            Thread.Sleep(1000);
            Ex02.ConsoleUtils.Screen.Clear();
        }
Esempio n. 3
0
 private void initializationEnums()
 {
     CarColor.SetListOfCarColors();
     LicenseType.SetListOfLicenseType();
     VehicleManager.SetVehicleList();
     VehicleProperties.SetListOfOptions();
     DoorNumber.SetListOfOptions();
     FuelVehicle.SetEnergeyTypeList();
     VehicleManager.SetBooleanList();
     VehicleManager.ArrangementExtandedOptionList();
     s_FirstMenuStringArray.Add(Strings.menu_options_1);
     s_FirstMenuStringArray.Add(Strings.menu_options_2);
     s_FirstMenuStringArray.Add(Strings.menu_options_3);
     s_FirstMenuStringArray.Add(Strings.menu_options_4);
     s_FirstMenuStringArray.Add(Strings.menu_options_5);
     s_FirstMenuStringArray.Add(Strings.menu_options_6);
     s_FirstMenuStringArray.Add(Strings.menu_options_7);
     s_FirstMenuStringArray.Add(Strings.menu_options_8);
 }
Esempio n. 4
0
        public void FuelVehicle(BaseVehicle i_Vehicle, FuelVehicle.eEnergyType i_FuelType, float i_Amount)
        {
            FuelVehicle vehicle = i_Vehicle as FuelVehicle;

            if (vehicle != null)
            {
                if (vehicle.EnergyType == i_FuelType)
                {
                    vehicle.Fuel = i_Amount;
                }
                else
                {
                    throw new ArgumentException(Strings.try_to_fuel_other_type_of_fuel);
                }
            }
            else
            {
                throw new ArgumentException(Strings.try_to_fuel_electric_vehicle);
            }
        }
Esempio n. 5
0
        private float getAmountOfFuelToAdd(FuelVehicle i_FuelVehicleToAdd, ref eExitOrCont io_ExitOrCont)
        {
            string amountOfFuelStr;
            float  amountOfFuelToAdd, maxAmountToadd;
            bool   isSuccseeded;

            Console.WriteLine("Please enter amount of fuel to add, or press -1 to go back to the main menu");
            amountOfFuelStr = Console.ReadLine();
            putExitIfMinus1(amountOfFuelStr, ref io_ExitOrCont);
            isSuccseeded = float.TryParse(amountOfFuelStr, out amountOfFuelToAdd);
            while ((!m_Garage.CanAddFuel(amountOfFuelToAdd, i_FuelVehicleToAdd, out maxAmountToadd) || !isSuccseeded) && io_ExitOrCont != eExitOrCont.Exit)
            {
                Console.WriteLine("Invalid amount, max amount possible to add is" + maxAmountToadd + " please add valid amount");
                amountOfFuelStr = Console.ReadLine();
                isSuccseeded    = float.TryParse(amountOfFuelStr, out amountOfFuelToAdd);
                putExitIfMinus1(amountOfFuelStr, ref io_ExitOrCont);
            }

            return(amountOfFuelToAdd);
        }
 void FillUp(FuelVehicle c)
 {
     c.FillUpEnergy(...);
 }
Esempio n. 7
0
 public void AddFuel(FuelVehicle i_FV, float i_LittersToAdd)
 {
     m_CurrentFuelLevel = AddEnergy(i_FV, r_MaximalFuelLevel, m_CurrentFuelLevel, i_LittersToAdd);
 }
Esempio n. 8
0
        public void FuelingGasolineVehicle()
        {
            int         index         = 0;
            string      licenseNumber = GetLicenseNumber(ref index);
            string      input;
            int         fuelTypeInput;
            bool        isLegalNumber    = false;
            bool        isCompatibleFuel = false;
            bool        isFueled         = false;
            FuelVehicle compare          = null;
            float       literInput;

            if (m_Garage.m_VehicleList[index] is ElectricVehicle)
            {
                throw new IncompatibleEnergyType();
            }

            string msg = string.Format(
                @"Choose a fuel type to fill (enter the number (X) selection) :
(0)- Soler,    (95)- Octan95,    (96)- Octan96,    (98)-Octan98");

            Console.WriteLine(msg);
            do
            {
                input = Console.ReadLine();

                isLegalNumber = int.TryParse(input, out fuelTypeInput);
                if (isLegalNumber)
                {
                    if (fuelTypeInput == (int)FuelVehicle.eFuelType.Soler || fuelTypeInput == (int)FuelVehicle.eFuelType.Octan95 || fuelTypeInput == (int)FuelVehicle.eFuelType.Octan96 || fuelTypeInput == (int)FuelVehicle.eFuelType.Octan98)
                    {
                        compare = m_Garage.m_VehicleList[index] as FuelVehicle;
                        if ((int)compare.FuelType != fuelTypeInput)
                        {
                            throw new IncompatibleEnergyType();
                        }
                        else
                        {
                            isCompatibleFuel = true;
                        }

                        isLegalNumber = true;
                    }
                    else
                    {
                        isLegalNumber = false;
                    }
                }

                if (!isLegalNumber)
                {
                    WrongInput();
                }
            }while (!isLegalNumber || !isCompatibleFuel);

            string msg2 = string.Format(
                @"The vehicle contains {0} liters from a maximum of {1}.
How much do you want to refuel?", compare.CurrentFuel, compare.MaxFuel);

            Console.WriteLine(msg2);

            do
            {
                input = Console.ReadLine();

                isLegalNumber = float.TryParse(input, out literInput);
                if (isLegalNumber)
                {
                    if (literInput <= (compare.MaxFuel - compare.CurrentFuel) && literInput >= k_Zero)
                    {
                        compare.CurrentFuel += literInput;
                        compare.UpdateEnergyPercentage();
                        isFueled = true;
                    }
                    else
                    {
                        throw new ValueOutOfRangeException(0, compare.MaxFuel - compare.CurrentFuel);
                    }

                    isLegalNumber = true;
                }

                if (!isLegalNumber)
                {
                    WrongInput();
                }
            }while (!isLegalNumber || !isFueled);
        }