private void addVehicle() { getOwnerDetails(out string ownerPhone, out string ownerName); Console.WriteLine("Please choose the vehicle type out of the following options"); displayEnumOptions <VehicleBuilder.eVehicleType>(); VehicleBuilder.eVehicleType userRequestedVehicleType = (VehicleBuilder.eVehicleType)getEnumChoiceFromUser <VehicleBuilder.eVehicleType>(); Dictionary <string, VehicleParam> paramsDictionary = new Dictionary <string, VehicleParam>(); Vehicle vehicleToAdd = VehicleBuilder.BuildVehicle(userRequestedVehicleType); List <VehicleParam> parametersList = vehicleToAdd.GetNewVehicleParams(); foreach (VehicleParam param in parametersList) { Console.WriteLine("Please enter {0}", param.FriendlyName); if (param.Type.IsEnum) { Console.WriteLine("Options: " + string.Join(",", Enum.GetNames(param.Type))); string userInput = Console.ReadLine(); param.Value = Enum.Parse(param.Type, userInput); } else { string userInput = Console.ReadLine(); param.Value = Convert.ChangeType(userInput, param.Type); } paramsDictionary.Add(param.Name, param); } vehicleToAdd.InitNewVehicle(paramsDictionary); m_Garage.AddVehicle(ownerPhone, ownerName, vehicleToAdd); Console.WriteLine("Vehicle was added to the garage"); }
/// <summary> /// /// </summary> private void enterVehicle() { string licenseNumber = getLicenceNumberFromUser(); Vehicle vehicle = m_Garage.GetVehicle(licenseNumber); // No such vehicle, add it if (vehicle == null) { VehicleBuilder.eVehicleType typeOfVehicle = getVehicleTypeFromUser(); string vehicleModel = getVehicleModelFromUser(); string[] vehicleSpecificDetails = getVehicleSpecificDetailsFromUser(typeOfVehicle); vehicle = m_Garage.vehicleBuilder.buildVehicle(licenseNumber, typeOfVehicle, vehicleModel, vehicleSpecificDetails); vehicle.Tires = getTiresDetailsFromUser(vehicle); vehicle.LicenseNum = licenseNumber; vehicle.OwnerName = getOwnerNameFromUser(); vehicle.OwnerPhone = getOwnerPhoneFromUser(); getAdditionalDetails(vehicle); m_Garage.AddVehicle(vehicle); write("Vehicle was successfuly added!"); } // Already exists, change status else { m_Garage.ChangeStatus(vehicle, eVehicleStatus.InReparation); write(String.Format("Vehicle status changed to {0}", eVehicleStatus.InReparation)); } }
private string[] getVehicleSpecificDetailsFromUser(VehicleBuilder.eVehicleType typeOfVehicle) { string[] vehicleDetailsList = m_Garage.vehicleBuilder.GetVehicleDetails(typeOfVehicle); string[] vehicleDetails = new string[vehicleDetailsList.Length]; for (int i = 0; i < vehicleDetailsList.Length; i++) { Console.WriteLine("Please enter " + vehicleDetailsList[i]); vehicleDetails[i] = Console.ReadLine(); } return(vehicleDetails); }