private static void addNewCarToFix() { bool licenceExist; string modelName; string licenceNumber; float currentEnergyInPercent = -1; string wheelsVendorName; float currentAirPressure; Vehicle newVehicle; Engine.eEnergyType energyType = Engine.eEnergyType.Fuel; Car.eColorOfCar colorOfCar; Car.eNumOfDoors numOfDoors; Motorcycle.eLicenceTypes licenceType; int engineCapacity; bool isDriveingDangerousThings; float volumeOfCargo; string ownerName; string ownerPhoneNumber; int vehicleType = 0; int userChoice = 0; Console.WriteLine( @"Please choose vehicle type: 1. Car 2. Motorcycle 3. Truck"); vehicleType = inputBetweenRange(1, 3); if (userChoice == 1 || userChoice == 2) { Console.WriteLine(@"Please enter vehicle energy type: 1. Fuel 2. Electricity"); userChoice = inputBetweenRange(1, 2); switch (userChoice) { case 1: energyType = Engine.eEnergyType.Fuel; break; case 2: energyType = Engine.eEnergyType.Electricity; break; } } Console.Clear(); Console.Write("Please enter vehicle model name: "); modelName = checkEmptyInput(); Console.Write("Please enter vehicle licence number with 7/8 digits: "); licenceNumber = checkLicenceNumber(); licenceExist = m_Garage.isLicenceExist(licenceNumber); if (licenceExist == true) { Console.WriteLine("This licence number is already exists in the garage, his status became InFix."); } else { Console.Write("Please enter current energy in percent: "); currentEnergyInPercent = checkFloatParsing(); while (currentEnergyInPercent < 0 || currentEnergyInPercent > 100) { Console.WriteLine("Invalid input, the input must be between 0 to 100"); currentEnergyInPercent = checkFloatParsing(); } Console.Write("Please enter wheels vendor name: "); wheelsVendorName = checkEmptyInput(); Console.Write("Please enter current air pressure in the wheels: "); currentAirPressure = checkFloatParsing(); try { newVehicle = VehicleGenerator.VehicleCreator(modelName, licenceNumber, vehicleType, energyType, wheelsVendorName, currentEnergyInPercent, currentAirPressure); Console.Clear(); if (newVehicle is Car) { inputCarDetails(out colorOfCar, out numOfDoors); newVehicle.ChangeSpecificDetails(colorOfCar, numOfDoors); } else if (newVehicle is Motorcycle) { inputMotorcycleDetails(out licenceType, out engineCapacity); newVehicle.ChangeSpecificDetails(licenceType, engineCapacity); } else if (newVehicle is Truck) { inputTruckDetails(out isDriveingDangerousThings, out volumeOfCargo); newVehicle.ChangeSpecificDetails(isDriveingDangerousThings, volumeOfCargo); } Console.Clear(); Console.Write("Please enter your first name: "); ownerName = Console.ReadLine(); while (checkOwnerNameInput(ownerName) != true) { Console.WriteLine("Wrong input, Please enter only letters."); ownerName = Console.ReadLine(); } Console.WriteLine("Please enter your phone number in format of 10 digits:"); ownerPhoneNumber = Console.ReadLine(); while (checkOwnerPhoneNumberInput(ownerPhoneNumber) != true) { Console.WriteLine("Wrong input, Please enter only numbers with 10 digits."); ownerPhoneNumber = Console.ReadLine(); } m_Garage.AddNewCarToFix(newVehicle, ownerName, ownerPhoneNumber); } catch (ValueOutOfRangeException i_ValueOutOfRangeException) { Console.WriteLine(i_ValueOutOfRangeException.Message); } } }