using eprintServer.Enums; using eprintServer.Responses; using System.Reflection; using System.ComponentModel.DataAnnotations; namespace eprintServer.Services; public class SubAdminService { public List GetSubAdminPrivileges() { var privileges = Enum.GetValues(typeof(SubAdminPrivilegesEnum)) .Cast() .Select(e => { var enumValue = e.ToString(); string privilegeName = enumValue; // Fallback to raw enum value string // Use reflection to find the [Display] attribute for the enum member var member = typeof(SubAdminPrivilegesEnum).GetMember(enumValue).FirstOrDefault(); var displayAttribute = member?.GetCustomAttribute(); if (displayAttribute != null && !string.IsNullOrEmpty(displayAttribute.Name)) { privilegeName = displayAttribute.Name; } return new PrivilegeResponse { PrivilegeName = privilegeName, PrivilegeValue = enumValue, }; }) .ToList(); return privileges; } }