public ISubscriptionClient CreateSubscriptionClient(string topicName, string subscriptionName) { var key = $"{topicName}_{subscriptionName}"; var subscriptionClientModel = new AzureSubscriptionClientModel(topicName, subscriptionName); return(CreateClient(key, subscriptionClientModel, _subscriptionClients, BuildSubscriptionClient)); }
private ISubscriptionClient BuildSubscriptionClient(AzureSubscriptionClientModel model) { ServiceBusConnectionStringBuilder builder = new ServiceBusConnectionStringBuilder(_connectionString) { EntityPath = model.TopicName }; return(new SubscriptionClient(builder, model.SubscriptionName, ReceiveMode.PeekLock, RetryPolicy.Default)); }
public AzureServiceBusSubscriptionClient( IAzureServiceBusPersistentConnection persistentConnection, ILogger <AzureServiceBusClient> logger, IOptions <AzureServiceBusSubscriptionConfiguration> configuration, IServiceProvider serviceProvider, IConfiguration globalConfiguration) { Guard.Argument(persistentConnection, nameof(persistentConnection)).NotNull(); _serviceProvider = serviceProvider; _configuration = Guard.Argument(configuration, nameof(configuration)).NotNull().Value.Value; _logger = Guard.Argument(logger, nameof(logger)).NotNull().Value; _serviceProvider = Guard.Argument(serviceProvider, nameof(serviceProvider)).NotNull().Value; var subscriptionInfo = new AzureSubscriptionClientModel(); globalConfiguration.Bind(typeof(TEvent).Name, subscriptionInfo); _subscriptionClient = persistentConnection.CreateSubscriptionClient(subscriptionInfo.TopicName, subscriptionInfo.SubscriptionName); }