public static string GetEnumStringValue(this Enum value)
{
var info = value.GetType().GetField(value.ToString());
var displayName = info.GetCustomAttributes(true).OfType<DisplayNameAttribute>().FirstOrDefault();
if (displayName != null) return displayName.DisplayName;
var description = info.GetCustomAttributes(true).OfType<DescriptionAttribute>().FirstOrDefault();
if (description != null) return description.Description;
return value.ToString();
}