public static void Registrar(IServiceCollection services, ServicoProdamOptions servicoProdamOptions, VariaveisGlobaisOptions variaveisGlobaisOptions)
        {
            var policy = ObterPolicyBaseHttp();

            var basicAuth = $"{servicoProdamOptions.Usuario}:{servicoProdamOptions.Senha}".EncodeTo64();

            services.AddTransient <AutenticacaoSgpDelegatingHandler>();

            services.AddHttpClient(name: "servicoAtualizacaoCadastralProdam", c =>
            {
                c.BaseAddress = new Uri(servicoProdamOptions.Url);
                c.DefaultRequestHeaders.Add("Accept", "application/json");
                c.DefaultRequestHeaders.Add("Authorization", $"Basic {basicAuth}");
            }).AddPolicyHandler(policy);

            services.AddHttpClient(name: "servicoAtualizacaoCadastral", c =>
            {
                c.BaseAddress = new Uri(variaveisGlobaisOptions.ApiPalavrasBloqueadas);
                c.DefaultRequestHeaders.Add("Accept", "application/json");
            }).AddPolicyHandler(policy);

            services.AddHttpClient(name: "servicoApiSgp", c =>
            {
                c.BaseAddress = new Uri(variaveisGlobaisOptions.ApiSgp);
                c.DefaultRequestHeaders.Add("Accept", "application/json");
                c.DefaultRequestHeaders.Add("x-sgp-api-key", variaveisGlobaisOptions.ChaveIntegracaoSgpApi);
            }).AddPolicyHandler(policy)
            .AddHttpMessageHandler <AutenticacaoSgpDelegatingHandler>();
        }
Exemplo n.º 2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            AdicionarMediatr(services);
            ConfiguraVariaveisAmbiente(services);
            ConfiguraSentry();
            var servicoProdam = new ServicoProdamOptions();

            Configuration.GetSection(nameof(ServicoProdamOptions)).Bind(servicoProdam, c => c.BindNonPublicProperties = true);

            services.AddSingleton(servicoProdam);

            RegistrarMapeamentos.Registrar();

            services
            .AdicionarRepositorios()
            .AdicionarIdentity()
            .AdicionarServicos()
            .AdicionarCasosDeUso()
            .AdicionarPoliticas()
            .AdicionarClientesHttp(servicoProdam)
            .AddMemoryCache()
            .AddApplicationInsightsTelemetry()
            .AddHostedService <WorkerRabbitMQ>();



            services.AddControllers();
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo {
                    Title = "SME.AE.Worker", Version = "v1"
                });
            });
        }
Exemplo n.º 3
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <KestrelServerOptions>(options =>
            {
                options.AllowSynchronousIO = true;
            });

            services.AddResponseCompression(options =>
            {
                options.Providers.Add <GzipCompressionProvider>();
                options.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(new[] { "application/json" });
            });

            var variaveisGlobais = new VariaveisGlobaisOptions();

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

            var servicoProdam = new ServicoProdamOptions();

            Configuration.GetSection(nameof(ServicoProdamOptions)).Bind(servicoProdam, c => c.BindNonPublicProperties = true);

            var jwtVariaveis = new SgpJwtOptions();

            Configuration.GetSection(nameof(SgpJwtOptions)).Bind(jwtVariaveis, c => c.BindNonPublicProperties = true);

            services.AddSingleton(variaveisGlobais);
            services.AddSingleton(servicoProdam);
            services.AddSingleton(jwtVariaveis);

            AddAuthentication(services, variaveisGlobais);

            services.AddApplicationInsightsTelemetry(Configuration);

            RegistrarMapeamentos.Registrar();
            RegistrarMvc.Registrar(services, variaveisGlobais);
            RegistrarClientesHttp.Registrar(services, servicoProdam, variaveisGlobais);
            ConfiguraVariaveisAmbiente(services);

            services.AddInfrastructure(variaveisGlobais);
            services.AddApplication();
            services.AdicionarValidadoresFluentValidation();
            services.AddCors(options => options.AddDefaultPolicy(
                                 builder =>
            {
                builder.WithOrigins("*");
            })
                             );
            services
            .AddControllers()
            .AddNewtonsoftJson();

            // Register the Swagger generator, defining 1 or more Swagger documents
            RegistrarSwagger(services);
            services.AddApplicationInsightsTelemetry();
        }
Exemplo n.º 4
0
        public static IServiceCollection AdicionarClientesHttp(this IServiceCollection services, ServicoProdamOptions servicoProdamOptions)
        {
            var policy = ObterPolicyBaseHttp();

            var basicAuth = $"{servicoProdamOptions.Usuario}:{servicoProdamOptions.Senha}".EncodeTo64();

            services.AddHttpClient(name: "servicoAtualizacaoCadastralProdam", c =>
            {
                c.BaseAddress = new Uri(servicoProdamOptions.Url);
                c.DefaultRequestHeaders.Add("Accept", "application/json");
                c.DefaultRequestHeaders.Add("Authorization", $"Basic {basicAuth}");
            }).AddPolicyHandler(policy);

            return(services);
        }