public MenuItem(string name, string displayText, uint position, string url, string cssClass = "fa fa-circle-o", List <AuthorizeAttribute> microsoftAuthorizeAttributes = null) { Name = name; Position = position; Url = url; DisplayText = displayText; CssClass = cssClass; if (microsoftAuthorizeAttributes != null) { // Get the authorized roles and policies foreach (var attr in microsoftAuthorizeAttributes) { if (!string.IsNullOrWhiteSpace(attr.Roles)) { AnyRoles.AddRange(attr.Roles.Split(',')); } if (!string.IsNullOrWhiteSpace(attr.Policy)) { AllPolicies.Add(attr.Policy); } } } }
//public static readonly Policy DefaultColonists = AllPolicies.DefaultIfEmpty(Unrestricted).FirstOrDefault((obj) => obj.assignablePawns.colonists && obj.targetDefault); //public static readonly Policy DefaultPrisoners = AllPolicies.DefaultIfEmpty(Unrestricted).FirstOrDefault((obj) => obj.assignablePawns.prisoners && obj.targetDefault); //public static readonly Policy DefaultAnimals = AllPolicies.DefaultIfEmpty(Unrestricted).FirstOrDefault((obj) => obj.assignablePawns.pets && obj.targetDefault); public static IEnumerable <Policy> GetAllPoliciesForPawn(Pawn pawn) { return(AllPolicies.Where((Policy arg) => arg.AdmitsPawn(pawn))); }