diff options
Diffstat (limited to 'Decompiler/Gestor.Application.Helpers/BindingEnumHelper.cs')
| -rw-r--r-- | Decompiler/Gestor.Application.Helpers/BindingEnumHelper.cs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.Helpers/BindingEnumHelper.cs b/Decompiler/Gestor.Application.Helpers/BindingEnumHelper.cs new file mode 100644 index 0000000..aa28e3a --- /dev/null +++ b/Decompiler/Gestor.Application.Helpers/BindingEnumHelper.cs @@ -0,0 +1,45 @@ +using System; +using System.ComponentModel; +using System.Text; + +namespace Gestor.Application.Helpers; + +public class BindingEnumHelper +{ + public static string ConcatenarDescricoesEnum<TEnum>(string valores) where TEnum : Enum + { + if (valores == null) + { + return null; + } + return ConcatenarDescricoesEnum<TEnum>(Array.ConvertAll(valores.Split(new char[1] { ',' }), int.Parse)); + } + + private static string ConcatenarDescricoesEnum<TEnum>(int[] valores) where TEnum : Enum + { + StringBuilder stringBuilder = new StringBuilder(); + foreach (int num in valores) + { + if (Enum.IsDefined(typeof(TEnum), num)) + { + string text = ObterDescricaoEnum((TEnum)Enum.ToObject(typeof(TEnum), num)); + stringBuilder.Append(text + ", "); + } + else + { + stringBuilder.Append("Valor desconhecido, "); + } + } + return stringBuilder.ToString().TrimEnd(',', ' '); + } + + private static string ObterDescricaoEnum<TEnum>(TEnum valor) where TEnum : Enum + { + DescriptionAttribute[] array = (DescriptionAttribute[])valor.GetType().GetField(valor.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), inherit: false); + if (array != null && array.Length != 0) + { + return array[0].Description; + } + return valor.ToString(); + } +} |