diff options
Diffstat (limited to 'src/Enmarcha.Backend/Helpers/EnumExtensions.cs')
| -rw-r--r-- | src/Enmarcha.Backend/Helpers/EnumExtensions.cs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/Enmarcha.Backend/Helpers/EnumExtensions.cs b/src/Enmarcha.Backend/Helpers/EnumExtensions.cs new file mode 100644 index 0000000..4ab3a66 --- /dev/null +++ b/src/Enmarcha.Backend/Helpers/EnumExtensions.cs @@ -0,0 +1,22 @@ +using System.ComponentModel; +using System.Reflection; +using Microsoft.AspNetCore.Mvc.Rendering; + +namespace Enmarcha.Backend.Helpers; + +public static class EnumExtensions +{ + public static string GetDescription(this Enum value) + { + var field = value.GetType().GetField(value.ToString()); + var attr = field?.GetCustomAttribute<DescriptionAttribute>(); + return attr?.Description ?? value.ToString(); + } + + public static IEnumerable<SelectListItem> ToSelectList<TEnum>() where TEnum : struct, Enum => + Enum.GetValues<TEnum>().Select(e => new SelectListItem + { + Value = e.ToString(), + Text = e.GetDescription() + }); +} |
