using System; using System.ComponentModel; using System.Text; namespace Gestor.Application.Helpers; public class BindingEnumHelper { public static string ConcatenarDescricoesEnum(string valores) where TEnum : Enum { if (valores == null) { return null; } return ConcatenarDescricoesEnum(Array.ConvertAll(valores.Split(new char[1] { ',' }), int.Parse)); } private static string ConcatenarDescricoesEnum(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 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(); } }