public EventBus( AzureServiceBusPublisherConfiguration azureServiceBusPublisherConfiguration, ITopicClientFactory topicClientFactory, IMessageFactory messageFactory) { _azureServiceBusPublisherConfiguration = azureServiceBusPublisherConfiguration; _topicClientFactory = topicClientFactory; _messageFactory = messageFactory; }
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); }