Example #1
0
        private static void ConfigureServices(HostBuilderContext context, IServiceCollection services)
        {
            var configuration = context.Configuration;

            //Buss

            var rabbitMqUri = configuration.GetSection($"{nameof(RabbitMqConfig)}:{nameof(RabbitMqConfig.Uri)}")
                              .Value;
            var userName = configuration.GetSection($"{nameof(RabbitMqConfig)}:{nameof(RabbitMqAuthConfig.UserName)}")
                           .Value;
            var password = configuration.GetSection($"{nameof(RabbitMqConfig)}:{nameof(RabbitMqAuthConfig.Password)}")
                           .Value;
            var config = (rabbitMqUri, userName, password);

            services.AddMassTransit(configurator =>
            {
                configurator.AddBus(provider => Configurator.ConfigureBus(config, (factoryConfigurator, host) =>
                {
                    var submitQueue = configuration
                                      .GetSection($"{nameof(RabbitMqConfig)}:{nameof(RabbitMqConfig.MessageQueue)}").Value;
                    factoryConfigurator.ReceiveEndpoint(host, submitQueue, e =>
                    {
                        e.UseRetry(Retry.Except <ArgumentException>().Intervals(400));
                        e.UseRateLimit(100, TimeSpan.FromSeconds(1));
                        e.Consumer <SubmitMessageHandler>();
                    });
                }));
            });

            services.AddHostedService <MassTransitHostedService>();
        }
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddOptions();
            services.Configure <RabbitMqConfig>(Configuration.GetSection(nameof(RabbitMqConfig)));


            var rabbitMqUri = Configuration.GetSection($"{nameof(RabbitMqConfig)}:{nameof(RabbitMqConfig.Uri)}")
                              .Value;
            var userName = Configuration.GetSection($"{nameof(RabbitMqConfig)}:{nameof(RabbitMqAuthConfig.UserName)}")
                           .Value;
            var password = Configuration.GetSection($"{nameof(RabbitMqConfig)}:{nameof(RabbitMqAuthConfig.Password)}")
                           .Value;
            var config = (rabbitMqUri, userName, password);

            services.AddMassTransit(configurator =>
            {
                configurator.AddBus(provider => Configurator.ConfigureBus(config, (factoryConfigurator, host) =>
                {
                    //Manualy
                    //factoryConfigurator.Message<ISubmitMessage>(topologyConfigurator => topologyConfigurator.SetEntityName("SubmitMessageExchange"));
                }));
            });

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            // Register the Swagger generator, defining 1 or more Swagger documents
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info {
                    Title = "My API", Version = "v1"
                });
            });

            // In production, the Angular files will be served from this directory
            services.AddSpaStaticFiles(configuration =>
            {
                configuration.RootPath = "ClientApp/dist";
            });
        }