Microsoft.WindowsAzure.Commands.Utilities.ServiceBus.ServiceBusClientExtensions.FilterAuthorizationRules C# (CSharp) Méthode

FilterAuthorizationRules() private méthode

private FilterAuthorizationRules ( Microsoft.WindowsAzure.Commands.Utilities.ServiceBus.AuthorizationRuleFilterOption options ) : List
options Microsoft.WindowsAzure.Commands.Utilities.ServiceBus.AuthorizationRuleFilterOption
Résultat List
        private List<ExtendedAuthorizationRule> FilterAuthorizationRules(AuthorizationRuleFilterOption options)
        {
            List<ExtendedAuthorizationRule> rules = GetAuthorizationRulesToFilter(options);
            List<ExtendedAuthorizationRule> result = new List<ExtendedAuthorizationRule>();

            if (!string.IsNullOrEmpty(options.Name))
            {
                result.Add(rules.FirstOrDefault(r => r.Name.Equals(options.Name,StringComparison.OrdinalIgnoreCase)));
            }
            else
            {
                List<ExtendedAuthorizationRule> permissionMatch = new List<ExtendedAuthorizationRule>();
                List<ExtendedAuthorizationRule> ruleTypeMatch = new List<ExtendedAuthorizationRule>();

                if (options.Permission != null && options.Permission.Count > 0)
                {
                    permissionMatch
                    .AddRange(
                    rules.FindAll(r => r.Permission.OrderBy(a => a).SequenceEqual(options.Permission.OrderBy(a => a))));
                }

                if (options.AuthorizationType != null && options.AuthorizationType.Count > 0)
                {
                    ruleTypeMatch.AddRange(
                        rules.FindAll(r => r.Rule.ClaimType.Any(t => options.AuthorizationType.Any(m => m.Equals(t)))));
                }

                result = permissionMatch.Count > 0 ? permissionMatch : rules;
                result = ruleTypeMatch.Count> 0 ? result.Union(ruleTypeMatch).ToList() : result;
            }

            return result == null ? new List<ExtendedAuthorizationRule>() : result;
        }