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"); }
private static void insertNewVehicle(Garage i_Garage) { Console.WriteLine("Please enter license number:"); string licenseNum = checkIfnotEmpty(Console.ReadLine()); bool alreadyInTheGarage = i_Garage.CheckIfInGarage(licenseNum); if (!alreadyInTheGarage) { Console.WriteLine("Please enter owner's name:"); string ownerName = checkIfnotEmpty(Console.ReadLine()); Console.WriteLine("Please enter owner's number:"); string ownerNumber = checkIfnotEmpty(Console.ReadLine()); Console.WriteLine("Please enter model's name:"); string modelName = checkIfnotEmpty(Console.ReadLine()); VehiclesCreator.VehicleType selectedType = vehicleSelection(i_Garage); Dictionary <string, string> vehicleDictionary = new Dictionary <string, string>(); List <string> vehicleProperties = i_Garage.GetProperties(selectedType); foreach (string property in vehicleProperties) { string toPrint = string.Format("Please enter {0}:", property); Console.WriteLine(toPrint); vehicleDictionary.Add(property, Console.ReadLine()); } vehicleDictionary.Add("Owner name", ownerName); vehicleDictionary.Add("Owner phone", ownerNumber); vehicleDictionary.Add("License number", licenseNum); vehicleDictionary.Add("Model name", modelName); try { Vehicle newVehicle = VehiclesCreator.SelectConstructor(selectedType, vehicleDictionary); i_Garage.AddVehicle(newVehicle, licenseNum); } catch (ArgumentException e) { Console.WriteLine(e.Message); } catch (FormatException e) { Console.WriteLine(e.Message); } catch (ValueOutOfRangeException e) { Console.WriteLine(e.Message); } } else { Console.WriteLine("Your vehicle is already in the garage."); } }
internal void AddNewVehicle() { int o_VehicleType = 0; string o_ModelName; string o_LicensePlateNumber; string o_OwnerName; string o_OwnerPhoneNumber; char o_IsFuelBased; ChatBot.GetVehicleGeneralDetails(out o_VehicleType, out o_ModelName, out o_IsFuelBased, out o_LicensePlateNumber); SetOwnerDetails(out o_OwnerName, out o_OwnerPhoneNumber); bool v_IsFuelBased = o_IsFuelBased == 'F' || o_IsFuelBased == 'f' ? true : false; Dictionary <string, string> extraFeatursDictionary = GetExtraFeatures(o_VehicleType); m_MyGarage.AddVehicle(o_VehicleType, o_ModelName, o_LicensePlateNumber, o_OwnerName, o_OwnerPhoneNumber, v_IsFuelBased, extraFeatursDictionary); SetEnergyType(o_LicensePlateNumber); SetWheels(o_LicensePlateNumber); }
private static bool ManageAddVehicle() { Console.WriteLine("Vehicle's License Plate:"); Console.Write("\t"); string licensePlate = Console.ReadLine(); if (m_Garage.IsExists(licensePlate)) { Console.WriteLine("The vehicle is already in the garage."); m_Garage.ChangeStatus(licensePlate, "InProgress"); PrintVehicleInformation(licensePlate); Console.WriteLine("\nJust letting you know, vehicle's status changed to 'In Progress'."); } else { PrintHeadLine("Basic Information", false); Console.WriteLine(); string vehicleSelection = GetSelectionOf("Vehicle Type", m_Garage.VehicleTypes(), 0); Console.WriteLine(); string engineSelection = GetSelectionOf("Engine Type", m_Garage.EngineTypes(), 0); PrintHeadLine($"{engineSelection} {vehicleSelection} - {licensePlate}", false); PrintHeadLine("More Information", true); Dictionary <string, Dictionary <Dictionary <string, string>, string[]> > nextInfo = m_Garage.AddVehicle(vehicleSelection, engineSelection, licensePlate); Dictionary <string, Dictionary <string, string> > nextInfo_answers = new Dictionary <string, Dictionary <string, string> >(); Console.WriteLine($"\nOwner:"); string ownerName = GetFreeInputOf("Vehicle's Owner Name"); Console.WriteLine(); string ownerPhoneNumber = GetFreeInputOf("Phone Number: (05X-XXXXXXX)", "phone"); m_Garage.SetVehicleOwner(licensePlate, ownerName, ownerPhoneNumber); bool wantToAddVehicle = true; while (wantToAddVehicle) { try { foreach (var generalProperty in nextInfo) { Console.WriteLine($"\n{generalProperty.Key}:"); Dictionary <string, string> newAnswerProperty = new Dictionary <string, string>(); foreach (var subProperty in generalProperty.Value) { foreach (var oneQuestion in subProperty.Key) { string question = oneQuestion.Key; string answer; if (nextInfo_answers.TryGetValue(generalProperty.Key, out _)) { Console.WriteLine($"\t{oneQuestion.Key}: {nextInfo_answers[generalProperty.Key][question]}"); } else { if (subProperty.Value == null) { // That's a free writing answer = GetFreeInputOf(question); } else { // We have some options to select from answer = GetSelectionOf(question, subProperty.Value, 1); } newAnswerProperty.Add(question, answer); } } } if (!nextInfo_answers.TryGetValue(generalProperty.Key, out _)) { nextInfo_answers.Add(generalProperty.Key, newAnswerProperty); } else { nextInfo_answers.Remove(generalProperty.Key); } } m_Garage.SetNewVehicleData(licensePlate, ref nextInfo_answers); Console.WriteLine("Vehicle added successfully"); wantToAddVehicle = false; } catch (Exception e) { Console.WriteLine(e.Message); wantToAddVehicle = AgainOrBack("Try again to add this vehicle"); } } } return(AgainOrBack("Add a different vehicle")); }
private void addVehicle() { Console.Clear(); Console.WriteLine("Enter 0 for an Electric Car"); Console.WriteLine("Enter 1 for a Combustion Car"); Console.WriteLine("Enter 2 for an Electric Motorcycle"); Console.WriteLine("Enter 3 for a Combustion Motorcycle"); Console.WriteLine("Enter 4 for a Truck"); string inputString = Console.ReadLine(); int inputInt; while (!int.TryParse(inputString, out inputInt)) { Console.WriteLine("Please enter a number"); inputString = Console.ReadLine(); } while (inputInt < 0 || inputInt > 4) { Console.WriteLine("Please enter a number from the list :)"); inputString = Console.ReadLine(); } int numberOfDoors; Color color; LicenseType licenseType; int intCapacity; TypeOfVehicle typeOfVehicle = (TypeOfVehicle)inputInt; Console.WriteLine("Enter Wheel Manufacturer Name"); string weelManufaturerName = Console.ReadLine(); Console.WriteLine("Enter Model Name"); string ModelName = Console.ReadLine(); Console.WriteLine("Enter License Plate"); string LicensePlate = Console.ReadLine(); Vehicle newVehicle = VehicleFactory.Generate(weelManufaturerName, ModelName, LicensePlate, typeOfVehicle); switch (typeOfVehicle) { case TypeOfVehicle.CombustionCar: color = getColorFromUser(); Console.WriteLine("Enter the number of doors (2 - 5)"); numberOfDoors = getIntInRanges(2, 5); ((CombustionCar)newVehicle).CarProperties = new CarProperties(color, numberOfDoors); break; case TypeOfVehicle.ElectricCar: color = getColorFromUser(); numberOfDoors = getNumberOfDoorsFromUser(); ((ElectricCar)newVehicle).CarProperties = new CarProperties(color, numberOfDoors); break; case TypeOfVehicle.CombustionMotorcycle: licenseType = getLicenseTypeFromUser(); intCapacity = getEngineCapacityFromUser(); ((CombustionMotorcycle)newVehicle).MotorcycleProperties = new MotorcycleProperties(intCapacity, licenseType); break; case TypeOfVehicle.ElectricMotorcycle: licenseType = getLicenseTypeFromUser(); intCapacity = getEngineCapacityFromUser(); ((ElectricMotorcycle)newVehicle).MotorcycleProperties = new MotorcycleProperties(intCapacity, licenseType); break; case TypeOfVehicle.Truck: Console.WriteLine("is trunk cool? 1 for yes, 0 for no."); int isTrunkCoolInt = getIntInRanges(0, 1); bool isTrunkCoolBool = isTrunkCoolInt == 1; Console.WriteLine("Enter the trunk size"); float trunkSize; if (!float.TryParse(Console.ReadLine(), out trunkSize)) { throw new FormatException("Format Error"); } if (trunkSize < 0) { throw new ValueOutOfRangeException(0, 1000); } Truck newTruck = newVehicle as Truck; if (newTruck != null) { newTruck.IsTrunkCool = isTrunkCoolBool; newTruck.TrunkSize = trunkSize; } break; } Console.WriteLine("Enter Name Of Owner"); string nameOfOwner = Console.ReadLine(); Console.WriteLine("Enter Phone Of Owner"); string phoneOfOwner = Console.ReadLine(); m_Garage.AddVehicle(new VehicleInGarage(nameOfOwner, phoneOfOwner, newVehicle)); }