示例#1
0
 public MessageBrokerSubscriptionBackgroundJob(
     MessageBrokerSubscriptionsConfigurationBuilder configurationBuilder,
     IServiceProvider serviceProvider,
     IRabbitMessageBrokerClient messageBrokerClient,
     ILogger <MessageBrokerSubscriptionBackgroundJob> logger,
     IBackgroundProcessingClient backgroundProcessingClient)
 {
     _configurationBuilder = configurationBuilder;
     _serviceProvider      = serviceProvider;
     _messageBrokerClient  = messageBrokerClient;
     _logger = logger;
     _backgroundProcessingClient = backgroundProcessingClient;
 }
        public static IServiceCollection AddMessageBrokerSubscriptions(this IServiceCollection services,
                                                                       Action <MessageBrokerSubscriptionsConfigurationBuilder> configure)
        {
            var configurationBuilder = new MessageBrokerSubscriptionsConfigurationBuilder();

            configure.Invoke(configurationBuilder);

            foreach (var subscription in configurationBuilder.Subscriptions)
            {
                services.AddTransient(subscription.Handler);
            }

            return(services
                   .AddSingleton(configurationBuilder)
                   .AddHostedService <MessageBrokerSubscriptionBackgroundJob>()
                   );
        }