private List<ExtendedAuthorizationRule> GetAuthorizationRuleCore(
string namespaceName,
string entityName,
ServiceBusEntityType entityType,
Predicate<AuthorizationRule> match)
{
NamespaceManager namespaceManager = CreateNamespaceManager(namespaceName);
List<AuthorizationRule> rules = null;
switch (entityType)
{
case ServiceBusEntityType.Queue:
rules = namespaceManager.GetQueue(entityName).Authorization.GetRules(match);
break;
case ServiceBusEntityType.Topic:
rules = namespaceManager.GetTopic(entityName).Authorization.GetRules(match);
break;
case ServiceBusEntityType.Relay:
rules = namespaceManager.GetRelayAsync(entityName).Result.Authorization.GetRules(match);
break;
case ServiceBusEntityType.NotificationHub:
rules = namespaceManager.GetNotificationHub(entityName).Authorization.GetRules(match);
break;
default:
throw new InvalidOperationException();
}
return rules.Select(r => CreateExtendedAuthorizationRule(
r,
namespaceName,
entityName,
entityType)).ToList();
}