public object Retrieve(KeyValuePair <string, string> keyValuePair, Type targetType, Type propertyType) { var value = keyValuePair.Value; if (propertyType.IsEnum) { if (value == null) { throw new InvalidOperationException("No enum with value {null} found"); } if (value.Length == 0) { throw new InvalidOperationException("No enum with value {empty} found"); } } else { if (string.IsNullOrEmpty(value)) { return(null); } propertyType = propertyType.GetGenericArguments()[0]; } try { return(StepArgumentTypeConverter.ConvertToAnEnum(propertyType, value)); } catch { throw new InvalidOperationException($"No enum with value {value} found"); } }
internal static Enum ConvertToEnum(string value, Type enumType) { var enumTypeInternal = GetEnumTypeFromNullableEnum(enumType); switch (enumTypeInternal) { case var type when TryGetValueFromDisplayNameAttribute(value, type, out var result): return(result); default: return((Enum)StepArgumentTypeConverter.ConvertToAnEnum(enumTypeInternal, value)); } }
private object ConvertTheStringToAnEnum(string value, Type enumType) { return(StepArgumentTypeConverter.ConvertToAnEnum(GetTheEnumType(enumType), PrepareValue(value))); }
private static object ConvertTheStringToAnEnum(string value, Type enumType) { return(StepArgumentTypeConverter.ConvertToAnEnum(GetTheEnumType(enumType), value)); }