private static void addNewVehicleToGarage(Ex03.GarageLogic.Garage i_Garage)
        {
            Dictionary <string, object> vehicleDic = Ex03.GarageLogic.VehicleInGarage.GetVehicleDictionary();

            Console.WriteLine("Please enter the vehicle's owner name");
            string name = InputValidation.GetName();

            Console.WriteLine("Please enter the vehicles owner phone number");
            string phoneNumber = InputValidation.GetPhoneNumber();

            Console.WriteLine("Please enter the vehicles license number");
            vehicleDic["License number"] = InputValidation.GetCarLicense();
            if (i_Garage.CarIsAlreadyInGarage((string)vehicleDic["License number"]))
            {
                Console.WriteLine("Car is already in the garage. Please select another option from the menu.");
            }
            else
            {
                Console.WriteLine("Please enter your vehicle model name.");
                vehicleDic["Model name"] = InputValidation.GetName();
                int type = InputValidation.GetTypeOfVehicle(i_Garage);
                if (type == 0)
                {
                    return;
                }

                vehicleDic["Energy type"] = type;
                Console.WriteLine("Please enter your vehicle current Fuel/Battery level in precents (e.g if your tank/battery is half full enter 50.)");
                vehicleDic["Current energy(%)"] = InputValidation.GetFloatValueInRange(0, 100);
                Console.WriteLine("Please enter your wheels manufacturer name.");
                vehicleDic["Wheels manufacturer"] = InputValidation.GetName();
                Console.WriteLine("Please enter your current wheels air pressure.");
                vehicleDic["Current wheels pressure"] = InputValidation.GetCurAirPressure(type, i_Garage);
                Dictionary <string, object> specialProperties = Ex03.GarageLogic.AddVehicle.GetSpecialPropertiesDic(vehicleDic);
                Dictionary <string, object> copyOfSpecialDic  = Ex03.GarageLogic.AddVehicle.GetSpecialPropertiesDic(vehicleDic);
                foreach (string key in copyOfSpecialDic.Keys)
                {
                    Console.WriteLine("Please choose a valid " + key + Environment.NewLine + i_Garage.GetOptions(key));
                    specialProperties[key] = Console.ReadLine();
                }

                try
                {
                    Ex03.GarageLogic.VehicleInGarage.AddNewVehicle(i_Garage, name, phoneNumber, vehicleDic, specialProperties);
                    Console.WriteLine("A new vehicle was added to the garage");
                }
                catch (ArgumentException e0)
                {
                    Console.WriteLine("Invalid input. Unable to create a new vehicle");
                }
                catch (FormatException e1)
                {
                    Console.WriteLine("Invalid input.Unable to create a new vehicle");
                }
                catch (Ex03.GarageLogic.ValueOutOfRangeException e2)
                {
                    Console.WriteLine("Invalid input.Unable to create a new vehicle");
                }
            }
        }
        private static void fuelVehicle(Ex03.GarageLogic.Garage i_Garage)
        {
            Console.WriteLine("Please enter the vehicles license number");
            string licenseNumber = InputValidation.GetCarLicense();
            bool   isCarExists   = i_Garage.CarIsAlreadyInGarage(licenseNumber);

            if (!isCarExists)
            {
                Console.WriteLine("Could not locate car in the garage. Please try again later.");
            }
            else
            {
                string selectMsg = string.Format(
                    @"Please select type of Fuel/Electric you would like to fill in your vehicle
{0}",
                    i_Garage.GetEnergyTypes());
                Console.WriteLine(selectMsg);
                int selection = InputValidation.GetIntValueInRange(1, i_Garage.GetNumberOfEnergyType());
                Console.WriteLine("Please enter the amount you would like to fill (in Litres)");
                float amountToFill = InputValidation.GetFloatValueInRange(0, float.MaxValue);
                try
                {
                    i_Garage.FillEnergy(licenseNumber, selection, amountToFill);
                }
                catch (ArgumentException e1)
                {
                    Console.WriteLine(e1.Message);
                }
                catch (Ex03.GarageLogic.ValueOutOfRangeException e2)
                {
                    Console.WriteLine(e2.Message);
                }
            }
        }
        private static void chargeVehicle(Ex03.GarageLogic.Garage i_Garage)
        {
            Console.WriteLine("Please enter the vehicles license number");
            string licenseNumber = InputValidation.GetCarLicense();
            bool   isCarExists   = i_Garage.CarIsAlreadyInGarage(licenseNumber);

            if (!isCarExists)
            {
                Console.WriteLine("Could not locate car in the garage. Please try again later.");
            }
            else
            {
                Console.WriteLine("Please enter the amount you would like to fill (in minutes)");
                float amountToFill = InputValidation.GetFloatValueInRange(0, float.MaxValue);
                try
                {
                    i_Garage.FillEnergy(licenseNumber, 5, amountToFill / 60);
                }
                catch (ArgumentException e1)
                {
                    Console.WriteLine(e1.GetType() + ": Wrong type of Energy. Better luck next time.");
                }
                catch (Ex03.GarageLogic.ValueOutOfRangeException e2)
                {
                    Console.WriteLine(e2.GetType() + ": Invalid amount to fill. Better luck next time.");
                }
            }
        }
        private static void inflateWheelsToMax(Ex03.GarageLogic.Garage i_Garage)
        {
            Console.WriteLine("Please enter the vehicles license number");
            string licenseNumber = InputValidation.GetCarLicense();
            bool   isCarExists   = i_Garage.CarIsAlreadyInGarage(licenseNumber);

            if (isCarExists)
            {
                i_Garage.InflateWheelsToMax(licenseNumber);
            }
            else
            {
                Console.WriteLine("Could not locate car in the garage. Please try again later.");
            }
        }
        private static void changeVehicleStatus(Ex03.GarageLogic.Garage i_Garage)
        {
            Console.WriteLine("Please enter the vehicles license number");
            string licenseNumber = InputValidation.GetCarLicense();
            bool   isCarExists   = i_Garage.CarIsAlreadyInGarage(licenseNumber);

            if (isCarExists)
            {
                string msg = string.Format(
                    @"Please select the new vehicle status
{0}",
                    i_Garage.GetStatusOptions());
                Console.WriteLine(msg);
                int selection = InputValidation.GetIntValueInRange(1, i_Garage.GetNumberOfStatusOptions());
                i_Garage.ChangeCarStatus(licenseNumber, selection);
            }
            else
            {
                Console.WriteLine("Could not locate car in the garage. Please try again later.");
            }
        }