Refatora o uso de HttpClient, removendo controle explícito de concorrência com SemaphoreSlim e RateLimiter, e adiciona suporte a certificados SSL com o método CreateHttpClient. Simplifica assinaturas de métodos e inicialização de dependências. Ajusta a lógica de comparação de medições para maior precisão com Math.Round. Atualiza consultas SQL em AccessRepository e PostgresRepository para melhorar legibilidade e remover filtros específicos. Altera o intervalo de datas no Program.cs e remove configurações de proxy e validação de certificado no HttpClient. Remove código legado e comentários desnecessários, melhorando a organização geral do código.
38 lines
1.9 KiB
C#
38 lines
1.9 KiB
C#
using System.Data.OleDb;
|
|
using Application;
|
|
using Infrastructure;
|
|
using System.Net;
|
|
using System.Net.Security;
|
|
using System.Security.Cryptography.X509Certificates;
|
|
|
|
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 = 4;";
|
|
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, 01);
|
|
DateTime dataFim = new DateTime(inicio.Year, 10, 28);
|
|
|
|
// 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 useCase = new ProcessarMedicoesUseCase(postgresRepo, accessRepo);
|
|
|
|
await useCase.ExecuteAsync(dataIni, dataFim, caminhoLog, CancellationToken.None);
|
|
|
|
Console.WriteLine($"Concluído. Tempo total: {DateTime.Now - inicio}");
|
|
string input = string.Empty;
|
|
|
|
while (input.ToLower() != "fim")
|
|
{
|
|
Console.WriteLine("Digite 'fim' para finalizar:");
|
|
input = Console.ReadLine();
|
|
}
|
|
}
|
|
} |