public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { var azureServiceBusSection = hostContext.Configuration.GetSection("Bus:MessageContract:AzureServiceBus"); var connectionString = azureServiceBusSection.GetValue <string>("ConnectionString"); var topic = azureServiceBusSection.GetValue <string>("Topic"); var subscription = azureServiceBusSection.GetValue <string>("Subscription"); var maxConcurrentCalls = 1; var autoCompleteMessage = false; var configurationAzureServiceBus = new ReceiverConfigurationAzureServiceBus <MessageContractASB>(topic, subscription, maxConcurrentCalls, autoCompleteMessage); var credentialsAzureServiceBus = new CredentialsAzureServiceBus(connectionString); services .AddAzureServiceBus(credentialsAzureServiceBus) .AddBusReceiverFor <MessageContractASB>(builder => builder .WithConfiguration(configurationAzureServiceBus) .WithMessageHandler <ConsumerMessage>()); services.AddHostedService <WorkerAzureServiceBus>(); var rabbitMQBusSection = hostContext.Configuration.GetSection("Bus:MessageContract:RabbitMQ"); var hostName = rabbitMQBusSection.GetValue <string>("HostName"); var port = rabbitMQBusSection.GetValue <int>("Port"); var userName = rabbitMQBusSection.GetValue <string>("UserName"); var password = rabbitMQBusSection.GetValue <string>("Password"); var queue = rabbitMQBusSection.GetValue <string>("Queue"); var exchange = rabbitMQBusSection.GetValue <string>("Exchange"); var credentialsRabbitMQ = new CredentialsRabbitMQ(hostName, port, userName, password); var configurationRabbitMQ = new ReceiverConfigurationRabbitMQ <MessageContractRMQ>(exchange, queue); services .AddRabbitMQ(credentialsRabbitMQ) .AddBusReceiverFor <MessageContractRMQ>(builder => builder .WithConfiguration(configurationRabbitMQ) .WithMessageHandler <ConsumerMessageRMQ>()); services.AddHostedService <WorkerRabbitMQ>(); });
public ServiceCollectionReceiverBuilderFor <T> WithConfiguration(ReceiverConfigurationRabbitMQ <T> configuration) { WithReceiver <ReceiverRabbitMQFor <T> >(configuration); return(this); }
public static ReceiverBuilderFor <T> WithRabbitMQ <T>(this ReceiverBuilderFor <T> receiver, ReceiverConfigurationRabbitMQ <T> configuration, CredentialsRabbitMQ credentials) { receiver.WithReceiver((pipeline, logger) => new ReceiverRabbitMQFor <T>(pipeline, new ResourcesRabbitMQ(), configuration, credentials, logger)); return(receiver); }