// mode 1 internal static void AddVehicle() { string licenseNumber = string.Empty; string getLicenseNumberMsg = @" In order to add a new vehicle to the system, please enter its license number:"; Console.WriteLine(getLicenseNumberMsg); licenseNumber = GetInput.GetLicenseNumber(true, out bool isLicenseNumberRegistered); if (isLicenseNumberRegistered) { Console.WriteLine($"You changed vehicle number {licenseNumber} to 'inRepair' status"); s_Garage.ChangeStatusOfVehicle(licenseNumber, eStatus.InRepair); } else { eVehicleType vehicleType = eVehicleType.Car; string model = string.Empty; string nameOfOwner = string.Empty; string phoneNumOfOwner = string.Empty; bool isElectric = false; float currentEnergyLevel = 0.0f; float currentAirPressure = 0.0f; string wheelManufacturer = string.Empty; object[] uniqueFeatures = null; string getVehicleTypeMsg = @" Please pick a vehicle type: {0}"; getVehicleTypeMsg = string.Format(getVehicleTypeMsg, buildMenuFromEnum(typeof(eVehicleType))); string getModel = @" Please enter the vehicle's model:"; string getNameOfOwnerMsg = @" Please enter the vehicle's owner name (letters only):"; string getPhoneNumOfOwnerMsg = @" Please enter the owner's phone number (digits only):"; string getIsElectricMsg = @" Is the vehicle electric? (yes / no)"; string getCurrentEnergyLevelMsg = @" Please enter the current amount of {0}:"; string getCurrentAirPressureMsg = @" Please enter the current air pressure:"; string getWheelManufacturerMsg = @" Please enter the wheels manufacturer:"; string uniqueFeatureMsg = @" Please enter {0}, possible values are: {1}"; string successMsg = @" Registration complete!"; string failsMsg = @" Registration could not be completed missing data"; Console.WriteLine(getVehicleTypeMsg); vehicleType = GetInput.GetVehicleType(); Console.WriteLine(getModel); model = GetInput.GetValidString(false, false); Console.WriteLine(getNameOfOwnerMsg); nameOfOwner = GetInput.GetValidString(false, true); Console.WriteLine(getPhoneNumOfOwnerMsg); phoneNumOfOwner = GetInput.GetValidString(true, false); VehicleBuilder newVehicle = s_Garage.BuildVehicle(vehicleType, model, licenseNumber, nameOfOwner, phoneNumOfOwner); if (newVehicle.CanBeElectric()) { Console.WriteLine(getIsElectricMsg); isElectric = GetInput.GetIsElectricOrNot(); } getCurrentEnergyLevelMsg = string.Format(getCurrentEnergyLevelMsg, isElectric ? "battery" : "gas"); Console.WriteLine(getCurrentEnergyLevelMsg); currentEnergyLevel = GetInput.GetValidFloat(); setEnergyUI(newVehicle, isElectric, currentEnergyLevel); Console.WriteLine(getWheelManufacturerMsg); wheelManufacturer = GetInput.GetValidString(false, false); Console.WriteLine(getCurrentAirPressureMsg); currentAirPressure = GetInput.GetValidFloat(); setWheelsUI(newVehicle, wheelManufacturer, currentAirPressure); uniqueFeatures = GetInput.GetUniqueFeatures(uniqueFeatureMsg, newVehicle); newVehicle.SetUniqueFeatures(uniqueFeatures); if (s_Garage.TryAddVehicle(newVehicle, licenseNumber)) { Console.WriteLine(successMsg); } else { Console.Out.WriteLine(failsMsg); } } }