Mismo que anterior Commit

This commit is contained in:
2025-07-03 15:56:06 -03:00
parent 20b6babc37
commit 5e317ab304
9 changed files with 67 additions and 57 deletions

View File

@@ -7,49 +7,30 @@ using Mercados.Worker;
using Polly;
using Polly.Extensions.Http;
using Mercados.Infrastructure.Services;
using DotNetEnv;
using DotNetEnv.Configuration;
var envFilePath = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "../../../../../.env"));
// Cargamos el archivo .env desde la ruta explícita.
// Si no lo encuentra, Load retornará false.
if (!Env.Load(envFilePath).Any())
{
Console.WriteLine($"ADVERTENCIA: No se pudo encontrar el archivo .env en la ruta: {envFilePath}");
}
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
IHost host = Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
// La línea 'config.AddDotNetEnv(optional: true);' ha sido eliminada.
IConfiguration configuration = hostContext.Configuration;
// --- 1. Registro de Servicios de Infraestructura ---
// El resto del código no cambia. IConfiguration recogerá automáticamente
// las variables de entorno que cargamos correctamente.
services.AddSingleton<IDbConnectionFactory, SqlConnectionFactory>();
services.AddScoped<ICotizacionGanadoRepository, CotizacionGanadoRepository>();
services.AddScoped<ICotizacionGranoRepository, CotizacionGranoRepository>();
services.AddScoped<ICotizacionBolsaRepository, CotizacionBolsaRepository>();
services.AddScoped<IFuenteDatoRepository, FuenteDatoRepository>();
//services.AddScoped<INotificationService, ConsoleNotificationService>();
services.AddScoped<INotificationService, EmailNotificationService>();
// --- 2. Registro de los Data Fetchers ---
// Descomentados para la versión final y funcional.
services.AddScoped<IDataFetcher, MercadoAgroFetcher>();
services.AddScoped<IDataFetcher, BcrDataFetcher>();
services.AddScoped<IDataFetcher, FinnhubDataFetcher>();
services.AddScoped<IDataFetcher, YahooFinanceDataFetcher>();
// --- 3. Configuración de Clientes HTTP con Polly ---
services.AddHttpClient("MercadoAgroFetcher").AddPolicyHandler(GetRetryPolicy());
services.AddHttpClient("BcrDataFetcher").AddPolicyHandler(GetRetryPolicy());
services.AddHttpClient("FinnhubDataFetcher").AddPolicyHandler(GetRetryPolicy());
// --- 4. Registro del Worker Principal ---
services.AddHostedService<DataFetchingService>();
})
.Build();