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>() ); }