using System; using System.Collections; using System.Diagnostics; using System.Text; using System.Collections.Generic; using System.Reflection; using System.Reflection.Emit; using System.IO; using System.Runtime.Serialization; using System.ComponentModel; using Sleis.Infrastructure; using Sleis.Models; namespace Sleis.Utility { public static class RoleUtility { //public static int RoleSort(AppUserRoleType role1, AppUserRoleType role2) { //} // public int MySortFunction(MyObject obj1, MyObject obj2) // { // return obj2.CompareTo(obj1); // } public static string ToDescriptionString(List Roles) { List list = new List(); foreach (T key in Roles) { List descs = new List(); string desc = ToDescription(key); list.Add(desc); } return String.Join(", ", list.ToArray()); } public static string ToDescription(T enumValue) { if (!enumValue.GetType().IsEnum) { throw new ArgumentException("enumValue must be an enum"); } if (!typeof(T).IsEnum) { throw new InvalidOperationException("T must be an enum"); } DescriptionAttribute[] da = (DescriptionAttribute[]) (typeof(T).GetField(enumValue.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), false)); return ((da.Length > 0) ? da[0].Description : enumValue.ToString()); } } }