Ejemplo n.º 1
0
        private void ConfiguraVariaveisAmbiente(IServiceCollection services)
        {
            var configuracaoRabbitOptions = new ConfiguracaoRabbitOptions();

            Configuration.GetSection(nameof(ConfiguracaoRabbitOptions)).Bind(configuracaoRabbitOptions, c => c.BindNonPublicProperties = true);

            var rabbitConn = new ConnectionFactory
            {
                HostName    = configuracaoRabbitOptions.HostName,
                UserName    = configuracaoRabbitOptions.UserName,
                Password    = configuracaoRabbitOptions.Password,
                VirtualHost = configuracaoRabbitOptions.VirtualHost
            };

            services.AddSingleton(rabbitConn);
        }
        public static void AddRabbit(this IServiceCollection services, ConfiguracaoRabbitOptions configuracaoRabbitOptions)
        {
            var factory = new ConnectionFactory
            {
                HostName    = configuracaoRabbitOptions.HostName,
                UserName    = configuracaoRabbitOptions.UserName,
                Password    = configuracaoRabbitOptions.Password,
                VirtualHost = configuracaoRabbitOptions.Virtualhost,
                AutomaticRecoveryEnabled = true,
                RequestedHeartbeat       = TimeSpan.FromSeconds(30)
            };

            var    conexaoRabbit = factory.CreateConnection();
            IModel _channel      = conexaoRabbit.CreateModel();

            services.AddSingleton(conexaoRabbit);
            services.AddSingleton(_channel);
        }
        public WorkerRabbitMQ(IConnection conexaoRabbit,
                              IServiceScopeFactory serviceScopeFactory,
                              IMetricReporter metricReporter,
                              ServicoTelemetria servicoTelemetria,
                              ConsumoDeFilasOptions consumoDeFilasOptions,
                              ConfiguracaoRabbitOptions configuracaoRabbitOptions,
                              TelemetriaOptions telemetriaOptions,
                              IMediator mediator)
        {
            this.conexaoRabbit             = conexaoRabbit ?? throw new ArgumentNullException(nameof(conexaoRabbit));
            this.serviceScopeFactory       = serviceScopeFactory ?? throw new ArgumentNullException(nameof(serviceScopeFactory));
            this.telemetriaOptions         = telemetriaOptions ?? throw new ArgumentNullException(nameof(telemetriaOptions));
            this.mediator                  = mediator ?? throw new ArgumentNullException(nameof(mediator));
            this.metricReporter            = metricReporter;
            this.servicoTelemetria         = servicoTelemetria ?? throw new ArgumentNullException(nameof(servicoTelemetria));
            this.consumoDeFilasOptions     = consumoDeFilasOptions ?? throw new ArgumentNullException(nameof(consumoDeFilasOptions));
            this.configuracaoRabbitOptions = configuracaoRabbitOptions ?? throw new ArgumentNullException(nameof(configuracaoRabbitOptions));

            comandos = new Dictionary <string, ComandoRabbit>();
            RegistrarUseCases();
        }
        private void ConfiguraVariaveisAmbiente(IServiceCollection services)
        {
            var variaveisGlobais = new VariaveisGlobaisOptions();

            Configuration.GetSection(VariaveisGlobaisOptions.Secao).Bind(variaveisGlobais, c => c.BindNonPublicProperties = true);

            var consumoDeFilasOptions = new ConsumoDeFilasOptions();

            Configuration.GetSection(nameof(ConsumoDeFilasOptions)).Bind(consumoDeFilasOptions, c => c.BindNonPublicProperties = true);

            var gsaSyncOptions = new GsaSyncOptions();

            Configuration.GetSection(nameof(GsaSyncOptions)).Bind(gsaSyncOptions, c => c.BindNonPublicProperties = true);

            RabbitOptions = new ConfiguracaoRabbitOptions();
            Configuration.GetSection(ConfiguracaoRabbitOptions.Secao).Bind(RabbitOptions, c => c.BindNonPublicProperties = true);

            services.AddSingleton(variaveisGlobais);
            services.AddSingleton(consumoDeFilasOptions);
            services.AddSingleton(gsaSyncOptions);
            services.AddSingleton(RabbitOptions);
        }