public AppendAuthorizeToSummaryOperationFilter() { var policySelector = new PolicySelectorWithLabel <AuthorizeAttribute> { Label = "policies", Selector = authAttributes => authAttributes .Where(a => !string.IsNullOrEmpty(a.Policy)) .Select(a => a.Policy) }; var rolesSelector = new PolicySelectorWithLabel <AuthorizeAttribute> { Label = "roles", Selector = authAttributes => authAttributes .Where(a => !string.IsNullOrEmpty(a.Roles)) .Select(a => a.Roles) }; filter = new AppendAuthorizeToSummaryOperationFilter <AuthorizeAttribute>(new[] { policySelector, rolesSelector }.AsEnumerable()); }
private void AppendPolicies(IEnumerable <T> authorizeAttributes, StringBuilder authorizationDescription, PolicySelectorWithLabel <T> policySelector) { var policies = policySelector.Selector(authorizeAttributes) .OrderBy(policy => policy); if (policies.Any()) { authorizationDescription.Append($" {policySelector.Label}: {string.Join(", ", policies)};"); } }