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