Exemple #1
0
        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>();
        });
Exemple #2
0
 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);
 }