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>(); }
// 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" }); }); }
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(); }
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); }