using System.Data.OleDb; using Application; using Infrastructure; class Program { static async Task Main() { DateTime inicio = DateTime.Now; string PG_CONN_STRING_PROD = "Server = smart-energia-dev-pgsql.cykff7tj7mik.us-east-1.rds.amazonaws.com; Port = 5432; Database = smartenergiaprod; Username = postgres; Password = VfHml#Z78!%kvvNM; Timeout = 60; CommandTimeout = 60; ApplicationName = new_med_5_min; Connection Lifetime = 120; Minimum Pool Size = 2; Maximum Pool Size = 2;"; string ACCESS_CONN_STRING = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\srv-dados\documentos\Middle\Informativo Setorial\Modelo Word\BD1_dados cadastrais e faturas.accdb;Jet OLEDB:Database Password=gds21"; string caminhoLog = $@"\\srv-dados\documentos\Back\Carteira x.x\Codigo\Erros\log_erros_{inicio:MM_dd_HH_mm}.csv"; //DateTime dataIni = new DateTime(inicio.Year, inicio.Month, 1); //DateTime dataFim = new DateTime(inicio.Year, inicio.Month, inicio.Day); DateTime dataIni = new DateTime(inicio.Year, 10, 1); DateTime dataFim = new DateTime(inicio.Year, 10, 14); // Configuração de dependências (pode usar um container DI depois) var postgresRepo = new PostgresRepository(PG_CONN_STRING_PROD); var accessRepo = new AccessRepository(ACCESS_CONN_STRING); var httpClient = new HttpClient(new HttpClientHandler { ClientCertificateOptions = ClientCertificateOption.Automatic, //Proxy = new WebProxy("127.0.0.1", 8888), //UseProxy = true, //ServerCertificateCustomValidationCallback = (HttpRequestMessage req, X509Certificate2? cert, X509Chain? chain, SslPolicyErrors errors) => true }); var rateLimiter = new RateLimiter(400, TimeSpan.FromMinutes(1)); var useCase = new ProcessarMedicoesUseCase(postgresRepo, accessRepo, httpClient, rateLimiter); await useCase.ExecuteAsync(dataIni, dataFim, caminhoLog, CancellationToken.None); Console.WriteLine($"Concluído. Tempo total: {DateTime.Now - inicio}"); Console.ReadKey(); } }