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

GetAuthorizationRulesToFilter() private méthode

private GetAuthorizationRulesToFilter ( Microsoft.WindowsAzure.Commands.Utilities.ServiceBus.AuthorizationRuleFilterOption options ) : List
options Microsoft.WindowsAzure.Commands.Utilities.ServiceBus.AuthorizationRuleFilterOption
Résultat List
        private List<ExtendedAuthorizationRule> GetAuthorizationRulesToFilter(AuthorizationRuleFilterOption options)
        {
            if (!string.IsNullOrEmpty(options.EntityName))
            {
                return GetAuthorizationRuleCore(
                    options.Namespace,
                    options.EntityName,
                    options.EntityType,
                    r => true);
            }
            else if (options.EntityTypes != null && options.EntityTypes.Count > 0)
            {
                NamespaceManager namespaceManager = CreateNamespaceManager(options.Namespace);
                List<ExtendedAuthorizationRule> rules = new List<ExtendedAuthorizationRule>();
                options.EntityTypes = options.EntityTypes.Distinct().ToList();
                
                foreach (ServiceBusEntityType type in options.EntityTypes)
                {
                    switch (type)
                    {
                        case ServiceBusEntityType.Queue:
                            rules.AddRange(namespaceManager.GetQueues()
                                .SelectMany(e => e.Authorization
                                    .Select(r => CreateExtendedAuthorizationRule(
                                        r,
                                        options.Namespace,
                                        e.Path,
                                        ServiceBusEntityType.Queue))));
                            break;

                        case ServiceBusEntityType.Topic:
                            rules.AddRange(namespaceManager.GetTopics()
                                .SelectMany(e => e.Authorization
                                    .Select(r => CreateExtendedAuthorizationRule(
                                        r,
                                        options.Namespace,
                                        e.Path,
                                        ServiceBusEntityType.Topic))));
                            break;

                        case ServiceBusEntityType.Relay:
                            rules.AddRange(namespaceManager.GetRelaysAsync().Result
                                .SelectMany(e => e.Authorization
                                    .Select(r => CreateExtendedAuthorizationRule(
                                        r,
                                        options.Namespace,
                                        e.Path,
                                        ServiceBusEntityType.Relay))));
                            break;

                        case ServiceBusEntityType.NotificationHub:
                            rules.AddRange(namespaceManager.GetNotificationHubs()
                                .SelectMany(e => e.Authorization
                                    .Select(r => CreateExtendedAuthorizationRule(
                                        r,
                                        options.Namespace,
                                        e.Path,
                                        ServiceBusEntityType.NotificationHub))));
                            break;

                        default: throw new InvalidOperationException();
                    }
                }

                return rules;
            }
            else
            {
                return ServiceBusClient.Namespaces.ListAuthorizationRules(options.Namespace)
                    .AuthorizationRules
                    .Select(ar => ar.ToSharedAccessAuthorizationRule())
                    .Select(r => CreateExtendedAuthorizationRule(r, options.Namespace))
                    .ToList();
            }
        }