private static Vehicle setBasicVehicleInfo(string i_LicenseNumber) { ConsoleUI.CreateEnumArray <eVehicleType>(); string type = ConsoleUI.GetField("Vehicle type: ", !v_LettersNumbersOnly, v_NumbersOnly); eVehicleType vehicleType = ConsoleUI.ParseEnum <eVehicleType>(type); string model = ConsoleUI.GetField("Model's name: ", v_LettersNumbersOnly); Vehicle newVehicle = VehicleInitiator.CreateVehicle(i_LicenseNumber, vehicleType, model); setEngine(newVehicle, vehicleType); getWheelsInfo(vehicleType, newVehicle); return(newVehicle); }
private static void setEngine(Vehicle i_Vehicle, eVehicleType i_Type) { float currentEnergy = ConsoleUI.ConvertToFloat(ConsoleUI.GetUserInput("Amount of energy left: ")); try { VehicleInitiator.InitEngine(i_Type, currentEnergy, out Engine engine, i_Vehicle); } catch (ValueOutOfRangeException ex) { ConsoleUI.PrintToScreen(string.Format("{0}{1}{2}", ex.Message, Environment.NewLine, "Try again")); setEngine(i_Vehicle, i_Type); } }
private static void setWheels(string i_Manufacturer, float i_AirPressure, eVehicleType i_Type, Vehicle i_Vehicle) { try { VehicleInitiator.InitWheels(i_Manufacturer, i_AirPressure, i_Type, i_Vehicle); } catch (ValueOutOfRangeException ex) { ConsoleUI.PrintToScreen(ex.Message); i_AirPressure = ConsoleUI.ConvertToFloat(ConsoleUI.GetUserInput("Try again - Current air pressure: ")); setWheels(i_Manufacturer, i_AirPressure, i_Type, i_Vehicle); } catch { ConsoleUI.PrintToScreen("Something went wrong... Try again"); getWheelsInfo(i_Type, i_Vehicle); } }
private static void setMember(Type i_MemberType, string i_MemberName, Vehicle i_Vehicle) { string input = string.Empty; ConsoleUI.PrintToScreen(string.Format("{0}: ", i_MemberName)); if (i_MemberType.IsEnum) { input = ConsoleUI.FindEnumType(i_MemberType); } else if (i_MemberType == typeof(bool)) { input = ConsoleUI.HandleBooleanType(i_MemberName); } else { input = ConsoleUI.GetUserInput(); } if (input.Length > 0) { try { VehicleInitiator.SetPropertiesForMember(i_MemberType, input, i_MemberName, i_Vehicle); } catch (InvalidCastException) { ConsoleUI.PrintToScreen(string.Format("Failed to handle input, since it's not from type {0}. Try again...", i_MemberType)); setMember(i_MemberType, i_MemberName, i_Vehicle); } catch (Exception ex) { ConsoleUI.PrintToScreen(string.Format("An error occured, please try again...{0}{1}", Environment.NewLine, ex.Message)); setMember(i_MemberType, i_MemberName, i_Vehicle); } } }