// This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { services.AddHttpContextAccessor(); RegistraDependencias.Registrar(services); RegistrarHttpClients(services, configuration); services.AddApplicationInsightsTelemetry(configuration); var provider = services.BuildServiceProvider(); //services.AdicionarRedis(configuration, provider.GetService<IServicoLog>()); if (env.EnvironmentName != "teste-integrado") { services.AddRabbit(); } services.AddHostedService <WorkerRabbitMQ>(); // Teste para injeção do client de telemetria em classe estática var serviceProvider = services.BuildServiceProvider(); var clientTelemetry = serviceProvider.GetService <TelemetryClient>(); DapperExtensionMethods.Init(clientTelemetry); SentrySdk.Init(configuration.GetValue <string>("Sentry:DSN")); services.AddMemoryCache(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddHttpContextAccessor(); ConfiguraVariaveisAmbiente(services); RegistraDependencias.Registrar(services, Configuration); RegistrarHttpClients(services, Configuration); services.AddRabbit(RabbitOptions); services.AddPolicies(); services.AddHostedService <WorkerRabbitMQ>(); ConfiguraRabbitParaLogs(services); var telemetriaOptions = ConfiguraTelemetria(services); var servicoTelemetria = new ServicoTelemetria(telemetriaOptions); DapperExtensionMethods.Init(servicoTelemetria); services.AddSingleton(servicoTelemetria); services.AddControllers(); services.AddSwaggerGen(c => { //c.AddServer(new OpenApiServer() { Description = "Dev", Url = "https://dev-gcasync.sme.prefeitura.sp.gov.br" }); //TODO: Remover rota fixa c.SwaggerDoc("v1", new OpenApiInfo { Title = "SME.GoogleClassroom.Worker.Rabbit", Description = "Serviço de integração EOL com o Google Classroom", Version = "v1" }); c.OperationFilter <AdicionaCabecalhoHttp>(); var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); c.IncludeXmlComments(xmlPath); }); var serviceProvider = services.BuildServiceProvider(); var mediator = serviceProvider.GetService <IMediator>(); services.AddSingleton(mediator); services.AddMvc(options => { options.EnableEndpointRouting = true; options.Filters.Add(new FiltroExcecoesAttribute(mediator)); }); services.UseMetricReporter(); }
private static async Task Main(string[] args) { // Run with console or service var asService = !(Debugger.IsAttached || args.Contains("--console")); var builder = new HostBuilder() .ConfigureAppConfiguration((hostContext, config) => { config.SetBasePath(Directory.GetCurrentDirectory()); config.AddEnvironmentVariables(); }) .ConfigureLogging((context, logging) => { logging.AddConfiguration(context.Configuration); logging.AddSentry(); }) .ConfigureServices((hostContext, services) => { services.AddHostedService <WorkerService>(); WorkerService.ConfigurarDependencias(hostContext.Configuration, services); WorkerService.Configurar(hostContext.Configuration, services); services.AddApplicationInsightsTelemetryWorkerService(hostContext.Configuration.GetValue <string>("ApplicationInsights__InstrumentationKey")); var provider = services.BuildServiceProvider(); //services.AddSingleton<IConnectionMultiplexerSME>( // new ConnectionMultiplexerSME(hostContext.Configuration.GetConnectionString("SGP_Redis"), provider.GetService<IServicoLog>())); // Teste para injeção do client de telemetria em classe estática , var telemetryConfiguration = new Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration(hostContext.Configuration.GetValue <string>("ApplicationInsights:InstrumentationKey")); var telemetryClient = new TelemetryClient(telemetryConfiguration); DapperExtensionMethods.Init(telemetryClient); // services.AddMemoryCache(); }); builder.UseEnvironment(asService ? EnvironmentName.Production : EnvironmentName.Development); if (asService) { await builder.Build().RunAsync(); } else { await builder.RunConsoleAsync(); } }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddResponseCompression(); var configTamanhoLimiteRequest = Configuration.GetSection("SGP_MaxRequestSizeBody").Value ?? "104857600"; services.Configure <Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions>(options => { options.Limits.MaxRequestBodySize = long.Parse(configTamanhoLimiteRequest); }); services.Configure <BrotliCompressionProviderOptions>(options => { options.Level = CompressionLevel.Fastest; }); services.AddSingleton(Configuration); services.AddHttpContextAccessor(); RegistraDependencias.Registrar(services); RegistraClientesHttp.Registrar(services, Configuration); RegistraAutenticacao.Registrar(services, Configuration); RegistrarMvc.Registrar(services, Configuration); RegistraDocumentacaoSwagger.Registrar(services); DefaultTypeMap.MatchNamesWithUnderscores = true; services.AddApplicationInsightsTelemetry(Configuration); var serviceProvider = services.BuildServiceProvider(); Orquestrador.Inicializar(serviceProvider); //services.AdicionarRedis(Configuration, serviceProvider.GetService<IServicoLog>()); if (Configuration.GetValue <bool>("FF_BackgroundEnabled", false)) { Orquestrador.Registrar(new Processor(Configuration, "SGP_Postgres")); RegistraServicosRecorrentes.Registrar(); } else { Orquestrador.Desativar(); } services.AddHealthChecks() //.AddRedis( // Configuration.GetConnectionString("SGP_Redis"), // "Redis Cache", // null, // tags: new string[] { "db", "redis" }) .AddNpgSql( Configuration.GetConnectionString("SGP_Postgres"), name: "Postgres") .AddCheck <ApiJuremaCheck>("API Jurema") .AddCheck <ApiEolCheck>("API EOL"); services.Configure <RequestLocalizationOptions>(options => { options.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("pt-BR"); options.SupportedCultures = new List <CultureInfo> { new CultureInfo("pt-BR"), new CultureInfo("pt-BR") }; }); if (_env.EnvironmentName != "teste-integrado") { services.AddRabbit(); } // Teste para injeção do client de telemetria em classe estática var clientTelemetry = serviceProvider.GetService <TelemetryClient>(); DapperExtensionMethods.Init(clientTelemetry); // services.AddMemoryCache(); }