Fix Worker 1447
This commit is contained in:
@@ -225,14 +225,18 @@ public class Worker : BackgroundService
|
|||||||
using var scope = _serviceProvider.CreateScope();
|
using var scope = _serviceProvider.CreateScope();
|
||||||
var dbContext = scope.ServiceProvider.GetRequiredService<EleccionesDbContext>();
|
var dbContext = scope.ServiceProvider.GetRequiredService<EleccionesDbContext>();
|
||||||
|
|
||||||
// Buscamos los ámbitos de nivel Municipio/Partido
|
|
||||||
var municipiosASondear = await dbContext.AmbitosGeograficos
|
var municipiosASondear = await dbContext.AmbitosGeograficos
|
||||||
.AsNoTracking()
|
.AsNoTracking()
|
||||||
.Where(a => a.NivelId == 5 && a.MunicipioId != null && a.DistritoId != null && a.SeccionId != null)
|
.Where(a => a.NivelId == 5 && a.MunicipioId != null && a.DistritoId != null && a.SeccionId != null)
|
||||||
.Select(a => new { a.Id, a.MunicipioId, a.SeccionId, a.DistritoId })
|
// Añadimos a.Nombre aquí para que esté disponible en el bucle
|
||||||
|
.Select(a => new { a.Id, a.Nombre, a.MunicipioId, a.SeccionId, a.DistritoId })
|
||||||
.ToListAsync(stoppingToken);
|
.ToListAsync(stoppingToken);
|
||||||
|
|
||||||
if (!municipiosASondear.Any()) return;
|
if (!municipiosASondear.Any())
|
||||||
|
{
|
||||||
|
_logger.LogWarning("No se encontraron Partidos (NivelId 5) en la BD para sondear resultados.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
_logger.LogInformation("Iniciando sondeo de resultados para {count} municipios (Partidos)...", municipiosASondear.Count);
|
_logger.LogInformation("Iniciando sondeo de resultados para {count} municipios (Partidos)...", municipiosASondear.Count);
|
||||||
|
|
||||||
@@ -246,19 +250,27 @@ public class Worker : BackgroundService
|
|||||||
|
|
||||||
if (categoriaConcejales != null)
|
if (categoriaConcejales != null)
|
||||||
{
|
{
|
||||||
// Para obtener resultados del PARTIDO completo, pasamos 'municipioId' como null.
|
|
||||||
// Usamos el 'seccionId' del registro, que según la aclaración, es el ID del Partido.
|
|
||||||
var resultados = await _apiService.GetResultadosAsync(
|
var resultados = await _apiService.GetResultadosAsync(
|
||||||
authToken,
|
authToken,
|
||||||
municipio.DistritoId!,
|
municipio.DistritoId!,
|
||||||
municipio.SeccionId!,
|
municipio.SeccionId!,
|
||||||
null, // <- AHORA ES NULL
|
null,
|
||||||
categoriaConcejales.Id
|
categoriaConcejales.Id
|
||||||
);
|
);
|
||||||
|
|
||||||
if (resultados != null)
|
if (resultados != null)
|
||||||
{
|
{
|
||||||
await GuardarResultadosDeAmbitoAsync(dbContext, municipio.Id, resultados, stoppingToken);
|
try
|
||||||
|
{
|
||||||
|
await GuardarResultadosDeAmbitoAsync(dbContext, municipio.Id, resultados, stoppingToken);
|
||||||
|
// Ahora 'municipio.Nombre' existe y el log funcionará
|
||||||
|
_logger.LogInformation("Resultados para el municipio '{nombre}' (ID: {id}) guardados/actualizados.", municipio.Nombre, municipio.MunicipioId);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
// Y aquí también funcionará, dándonos un error mucho más útil
|
||||||
|
_logger.LogError(ex, "FALLO CRÍTICO al guardar resultados para el municipio '{nombre}' (ID: {id}).", municipio.Nombre, municipio.MunicipioId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user