public EventBus(
     AzureServiceBusPublisherConfiguration azureServiceBusPublisherConfiguration,
     ITopicClientFactory topicClientFactory,
     IMessageFactory messageFactory)
 {
     _azureServiceBusPublisherConfiguration = azureServiceBusPublisherConfiguration;
     _topicClientFactory = topicClientFactory;
     _messageFactory     = messageFactory;
 }
Ejemplo n.º 2
0
        public static IServiceCollection RegisterEventPublisher(
            this IServiceCollection serviceCollection,
            Func <IServiceProvider, ServiceBusPublisherOptions> optionsRetriever)
        {
            serviceCollection.RegisterCommonServices(optionsRetriever);

            serviceCollection
            .AddSingleton(
                sp =>
            {
                var options = optionsRetriever.Invoke(sp);
                var azureServiceBusConfiguration =
                    new AzureServiceBusPublisherConfiguration(options.TopicName, options.PolicyName);
                return(azureServiceBusConfiguration);
            });

            serviceCollection.AddSingleton <ITopicClientFactory, TopicClientFactory>();
            serviceCollection.AddSingleton <IMessageFactory, MessageFactory>();
            serviceCollection.AddSingleton <IEventBus, EventBus>();

            return(serviceCollection);
        }