Exemplo n.º 1
0
        public void Configure(TransportConfigurator configurator)
        {
            configurator.Container.Register(container =>
            {
                return(Bus.Factory.CreateUsingRabbitMq(sbc =>
                {
                    var host = sbc.Host(configurator.Configuration["RabbitMQ:Host"],
                                        configurator.Configuration["RabbitMQ:VHost"], h =>
                    {
                        h.Username(configurator.Configuration["RabbitMQ:User"]);
                        h.Password(configurator.Configuration["RabbitMQ:Password"]);
                    });

                    if (_consumers.Any())
                    {
                        sbc.ReceiveEndpoint(host, configurator.Configuration["Heimdall:ServiceQ"],
                                            receiveConf => { _consumers.ForEach(act => act(receiveConf, container)); });
                    }
                }
                                                       ));
            })
            .As <IBusControl>()
            .As <IPublishEndpoint>()
            .As <ISendEndpointProvider>()
            .As <IBus>()
            .SingleInstance();

            configurator.Container.RegisterModule(new RabbitModule(_routeRegistry));
        }
Exemplo n.º 2
0
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            services.AddScoped <IHostedService, MqHostedService>();

            var builder = new ContainerBuilder();

            builder.Populate(services);
            builder.RegisterModule <AutofacModule>();

            var configuredTransport = new TransportConfigurator(builder, _configuration)
                                      .WithAgent <RabbitMqConfigurationAgent>()
                                      .Configure();

            return(new AutofacServiceProvider(configuredTransport.BuiltContainer));
        }