Beispiel #1
0
        static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .ConfigureServices((hostContext, services) =>
        {
            services.AddCore(hostContext.Configuration)
            .AddOrder(hostContext.Configuration);

            EasyNetQSettings easyNetQSettings = new EasyNetQSettings();
            hostContext.Configuration.GetSection(nameof(EasyNetQSettings)).Bind(easyNetQSettings);
            services.AddSingleton(easyNetQSettings);

            var bus = RabbitHutch.CreateBus(easyNetQSettings.Uri);
            services.AddSingleton(bus);

            services.AddSingleton <MessageDispatcher>();
            services.AddSingleton(_ =>
            {
                return(new AutoSubscriber(_.GetRequiredService <IBus>(), Assembly.GetExecutingAssembly().GetName().Name)
                {
                    AutoSubscriberMessageDispatcher = _.GetRequiredService <MessageDispatcher>()
                });
            });

            services.AddScoped <OrderCompletedConsumer>();
            services.AddScoped <OrderFailedConsumer>();

            services.AddHostedService <ConsumeService>();
        });
Beispiel #2
0
        public static IServiceCollection AddServices(this IServiceCollection services, IConfiguration configuration)
        {
            services.AddMediatR(Assembly.GetExecutingAssembly());

            EasyNetQSettings easyNetQSettings = new EasyNetQSettings();

            configuration.GetSection(nameof(EasyNetQSettings)).Bind(easyNetQSettings);
            services.AddSingleton(easyNetQSettings);

            var bus = RabbitHutch.CreateBus(easyNetQSettings.Uri);

            services.AddSingleton(bus);

            return(services);
        }