Remove "Default" rule when the class is Instantiated

This commit is contained in:
Christian Arenas 2017-05-26 01:35:19 +02:00
parent e454940801
commit 4399d6a4f3

View File

@ -30,7 +30,8 @@
_subscriptionClient = new SubscriptionClient(serviceBusPersisterConnection.ServiceBusConnectionStringBuilder, _subscriptionClient = new SubscriptionClient(serviceBusPersisterConnection.ServiceBusConnectionStringBuilder,
subscriptionClientName); subscriptionClientName);
CreateConsumerChannel(); RemoveDefaultRule();
RegisterSubscriptionClientMessageHandler();
} }
public void Publish(IntegrationEvent @event) public void Publish(IntegrationEvent @event)
@ -60,7 +61,7 @@
var eventName = typeof(T).Name; var eventName = typeof(T).Name;
var containsKey = _subsManager.HasSubscriptionsForEvent<T>(); var containsKey = _subsManager.HasSubscriptionsForEvent<T>();
if (!containsKey) if (!containsKey)
{ {
try try
{ {
_subscriptionClient.AddRuleAsync(new RuleDescription _subscriptionClient.AddRuleAsync(new RuleDescription
@ -104,7 +105,7 @@
_subsManager.Clear(); _subsManager.Clear();
} }
private void CreateConsumerChannel() private void RegisterSubscriptionClientMessageHandler()
{ {
_subscriptionClient.RegisterMessageHandler( _subscriptionClient.RegisterMessageHandler(
async (message, token) => 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.");
}
}
} }
} }