private void generateVehicle(string i_Vehicle)
 {
     try
     {
         Vehicle            vehicleToGenerate;
         GarageVehicleUtils vehicleDetails = getVehicleDetailsAndGenerate();
         vehicleToGenerate = m_VehicleCreator.GetVehicle(vehicleDetails.ModelName, vehicleDetails.LicenseNumber, i_Vehicle, vehicleDetails.Energy);
         getVehicleDetailsToProgress(vehicleToGenerate);
         addToGarge(vehicleToGenerate);
     }
     catch (ArgumentException ae)
     {
         Console.WriteLine(ae.Message);
     }
     catch (FormatException fe)
     {
         Console.WriteLine(fe.Message);
     }
     catch (ValueOutOfRangeException vore)
     {
         Console.WriteLine(vore.Message);
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
     }
 }
        private GarageVehicleUtils getVehicleDetailsAndGenerate()
        {
            GarageVehicleUtils DetailsAboutVehicle = new GarageVehicleUtils();

            Console.Clear();
            Console.WriteLine("Enter a name of model");
            DetailsAboutVehicle.ModelName     = Console.ReadLine();
            DetailsAboutVehicle.LicenseNumber = getVehicleLicenseNumber();
            DetailsAboutVehicle.Energy        = getCurrentEnergy();

            return(DetailsAboutVehicle);
        }
        private void getVehicleDetailsToProgress(Vehicle i_Vehicle)
        {
            bool isVaildParmeters             = false;
            GarageVehicleUtils vehicleDetails = i_Vehicle.GetDataToInput();

            while (!isVaildParmeters)
            {
                foreach (string dataNeedToInput in vehicleDetails.Details)
                {
                    if (dataNeedToInput.Equals("Wheel Manfactuer: "))
                    {
                        foreach (Wheel wheel in i_Vehicle.Wheels)
                        {
                            Console.WriteLine(dataNeedToInput);
                            wheel.NameOfManufacturer = Console.ReadLine();
                        }

                        continue;
                    }
                    else if (dataNeedToInput.Equals("Wheel current Psi: "))
                    {
                        foreach (Wheel wheel in i_Vehicle.Wheels)
                        {
                            wheel.CurrPsi = getPositiveFloatInput(dataNeedToInput);
                        }

                        continue;
                    }

                    Console.WriteLine(dataNeedToInput);
                    vehicleDetails.UserInput.Add(Console.ReadLine());
                }

                i_Vehicle.SetVehicleData();
                isVaildParmeters = true;
            }
        }