internal static object GetPropertyFromUser(string i_Key, Type i_ArgumentType, GarageLogic.Garage i_Garage, Type i_TargetType) { object value; PropertyPrompt(i_Key, i_ArgumentType); if (i_ArgumentType == typeof(int)) { value = getValidIntegerFromUser(); } else if (i_ArgumentType == typeof(float)) { value = GetValidFloatFromUser(); } else if (i_ArgumentType == typeof(string)) { value = Console.ReadLine(); } else if (i_ArgumentType == typeof(bool)) { value = getValidYesNoFromUser(); } else if (i_ArgumentType.IsEnum) { value = GetValidEnumFromUser(i_ArgumentType); } else if (i_ArgumentType.IsClass) { while (true) { object[] objectParameters = GetValidObjectParametersFromUser(i_ArgumentType); try { value = i_Garage.CreateGarageObject(objectParameters, i_ArgumentType, i_TargetType); break; } catch (Exception e) { Console.WriteLine(e.Message); } } } else { value = null; } return(value); }