From 4399d6a4f32a495178c4804949da0f2391c7a7ba Mon Sep 17 00:00:00 2001 From: Christian Arenas Date: Fri, 26 May 2017 01:35:19 +0200 Subject: [PATCH] Remove "Default" rule when the class is Instantiated --- .../EventBusServiceBus/EventBusServiceBus.cs | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.cs b/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.cs index 3e941c8e0..b71945aba 100644 --- a/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.cs +++ b/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.cs @@ -30,7 +30,8 @@ _subscriptionClient = new SubscriptionClient(serviceBusPersisterConnection.ServiceBusConnectionStringBuilder, subscriptionClientName); - CreateConsumerChannel(); + RemoveDefaultRule(); + RegisterSubscriptionClientMessageHandler(); } public void Publish(IntegrationEvent @event) @@ -60,7 +61,7 @@ var eventName = typeof(T).Name; var containsKey = _subsManager.HasSubscriptionsForEvent(); if (!containsKey) - { + { try { _subscriptionClient.AddRuleAsync(new RuleDescription @@ -104,7 +105,7 @@ _subsManager.Clear(); } - private void CreateConsumerChannel() + private void RegisterSubscriptionClientMessageHandler() { _subscriptionClient.RegisterMessageHandler( async (message, token) => @@ -132,5 +133,20 @@ } } } + + private void RemoveDefaultRule() + { + try + { + _subscriptionClient + .RemoveRuleAsync(SubscriptionClient.DefaultRule) + .GetAwaiter() + .GetResult(); + } + catch (MessagingEntityNotFoundException) + { + _logger.LogInformation($"The messaging entity {SubscriptionClient.DefaultRule} Could not be found."); + } + } } }