Feat Front Widgets Refactizados y Ajustes Backend
This commit is contained in:
@@ -21,13 +21,13 @@ public class CatalogosController : ControllerBase
|
||||
[HttpGet("municipios")]
|
||||
public async Task<IActionResult> GetMunicipios()
|
||||
{
|
||||
// El NivelId 5 corresponde a "Municipio" según los datos que hemos visto.
|
||||
// CORRECCIÓN: Los partidos/municipios corresponden al NivelId 30 (Sección)
|
||||
var municipios = await _dbContext.AmbitosGeograficos
|
||||
.AsNoTracking()
|
||||
.Where(a => a.NivelId == 5 && a.MunicipioId != null)
|
||||
.Where(a => a.NivelId == 30 && a.SeccionId != null) // <-- NivelId 30
|
||||
.Select(a => new MunicipioSimpleDto
|
||||
{
|
||||
Id = a.MunicipioId!,
|
||||
Id = a.SeccionId!, // <-- Usamos SeccionId como el ID
|
||||
Nombre = a.Nombre
|
||||
})
|
||||
.OrderBy(m => m.Nombre)
|
||||
@@ -35,4 +35,14 @@ public class CatalogosController : ControllerBase
|
||||
|
||||
return Ok(municipios);
|
||||
}
|
||||
|
||||
[HttpGet("agrupaciones")]
|
||||
public async Task<IActionResult> GetAgrupaciones()
|
||||
{
|
||||
var agrupaciones = await _dbContext.AgrupacionesPoliticas
|
||||
.AsNoTracking()
|
||||
.Select(a => new { a.Id, a.Nombre }) // Devuelve solo lo necesario
|
||||
.ToListAsync();
|
||||
return Ok(agrupaciones);
|
||||
}
|
||||
}
|
||||
@@ -21,17 +21,18 @@ public class ResultadosController : ControllerBase
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
[HttpGet("municipio/{municipioId}")]
|
||||
public async Task<IActionResult> GetResultadosPorMunicipio(string municipioId)
|
||||
[HttpGet("partido/{seccionId}")]
|
||||
public async Task<IActionResult> GetResultadosPorPartido(string seccionId)
|
||||
{
|
||||
// 1. Buscamos el ámbito geográfico correspondiente al municipio
|
||||
// 1. Buscamos el ámbito geográfico correspondiente al PARTIDO (Nivel 30)
|
||||
var ambito = await _dbContext.AmbitosGeograficos
|
||||
.AsNoTracking()
|
||||
.FirstOrDefaultAsync(a => a.MunicipioId == municipioId);
|
||||
// CAMBIO CLAVE: Buscamos por SeccionId y NivelId para ser precisos
|
||||
.FirstOrDefaultAsync(a => a.SeccionId == seccionId && a.NivelId == 30);
|
||||
|
||||
if (ambito == null)
|
||||
{
|
||||
return NotFound(new { message = $"No se encontró el municipio con ID {municipioId}" });
|
||||
return NotFound(new { message = $"No se encontró el partido con ID {seccionId}" });
|
||||
}
|
||||
|
||||
// 2. Buscamos el estado del recuento para ese ámbito
|
||||
@@ -41,25 +42,34 @@ public class ResultadosController : ControllerBase
|
||||
|
||||
if (estadoRecuento == null)
|
||||
{
|
||||
return NotFound(new { message = $"No se han encontrado resultados para el municipio {ambito.Nombre}" });
|
||||
// Devolvemos una respuesta vacía pero válida para el frontend
|
||||
return Ok(new MunicipioResultadosDto
|
||||
{
|
||||
MunicipioNombre = ambito.Nombre,
|
||||
UltimaActualizacion = DateTime.UtcNow,
|
||||
PorcentajeEscrutado = 0,
|
||||
PorcentajeParticipacion = 0,
|
||||
Resultados = new List<AgrupacionResultadoDto>(),
|
||||
VotosAdicionales = new VotosAdicionalesDto()
|
||||
});
|
||||
}
|
||||
|
||||
// 3. Buscamos todos los votos para ese ámbito, incluyendo el nombre de la agrupación
|
||||
// 3. Buscamos todos los votos para ese ámbito
|
||||
var resultadosVotos = await _dbContext.ResultadosVotos
|
||||
.AsNoTracking()
|
||||
.Include(rv => rv.AgrupacionPolitica) // ¡Crucial para obtener el nombre del partido!
|
||||
.Include(rv => rv.AgrupacionPolitica)
|
||||
.Where(rv => rv.AmbitoGeograficoId == ambito.Id)
|
||||
.ToListAsync();
|
||||
|
||||
// 4. Calculamos el total de votos positivos para el porcentaje
|
||||
// 4. Calculamos el total de votos positivos
|
||||
long totalVotosPositivos = resultadosVotos.Sum(r => r.CantidadVotos);
|
||||
|
||||
// 5. Mapeamos todo a nuestro DTO de respuesta
|
||||
// 5. Mapeamos al DTO de respuesta
|
||||
var respuestaDto = new MunicipioResultadosDto
|
||||
{
|
||||
MunicipioNombre = ambito.Nombre,
|
||||
UltimaActualizacion = estadoRecuento.FechaTotalizacion,
|
||||
PorcentajeEscrutado = estadoRecuento.MesasTotalizadas * 100.0m / (estadoRecuento.MesasEsperadas > 0 ? estadoRecuento.MesasEsperadas : 1),
|
||||
PorcentajeEscrutado = estadoRecuento.MesasTotalizadasPorcentaje,
|
||||
PorcentajeParticipacion = estadoRecuento.ParticipacionPorcentaje,
|
||||
Resultados = resultadosVotos.Select(rv => new AgrupacionResultadoDto
|
||||
{
|
||||
@@ -75,7 +85,6 @@ public class ResultadosController : ControllerBase
|
||||
}
|
||||
};
|
||||
|
||||
// Devolvemos el resultado
|
||||
return Ok(respuestaDto);
|
||||
}
|
||||
|
||||
@@ -157,8 +166,6 @@ public class ResultadosController : ControllerBase
|
||||
[HttpGet("mapa")]
|
||||
public async Task<IActionResult> GetResultadosParaMapa()
|
||||
{
|
||||
// Esta consulta es mucho más eficiente y se traduce bien a SQL.
|
||||
// Paso 1: Para cada ámbito, encontrar la cantidad máxima de votos.
|
||||
var maxVotosPorAmbito = _dbContext.ResultadosVotos
|
||||
.GroupBy(rv => rv.AmbitoGeograficoId)
|
||||
.Select(g => new
|
||||
@@ -167,24 +174,93 @@ public class ResultadosController : ControllerBase
|
||||
MaxVotos = g.Max(v => v.CantidadVotos)
|
||||
});
|
||||
|
||||
// Paso 2: Unir los resultados originales con los máximos para encontrar el registro ganador.
|
||||
// Esto nos da, para cada ámbito, el registro completo del partido que tuvo más votos.
|
||||
var resultadosGanadores = await _dbContext.ResultadosVotos
|
||||
.Join(
|
||||
maxVotosPorAmbito,
|
||||
voto => new { AmbitoId = voto.AmbitoGeograficoId, Votos = voto.CantidadVotos },
|
||||
max => new { AmbitoId = max.AmbitoId, Votos = max.MaxVotos },
|
||||
(voto, max) => voto // Nos quedamos con el objeto 'ResultadoVoto' completo
|
||||
(voto, max) => voto
|
||||
)
|
||||
.Include(rv => rv.AmbitoGeografico) // Incluimos el ámbito para obtener el MunicipioId
|
||||
.Where(rv => rv.AmbitoGeografico.MunicipioId != null)
|
||||
.Include(rv => rv.AmbitoGeografico)
|
||||
.Where(rv => rv.AmbitoGeografico.NivelId == 30) // Aseguramos que solo sean los ámbitos de nivel 30
|
||||
.Select(rv => new
|
||||
{
|
||||
MunicipioId = rv.AmbitoGeografico.MunicipioId,
|
||||
// CORRECCIÓN CLAVE: Devolvemos los campos que el frontend necesita para funcionar.
|
||||
|
||||
// 1. El ID de la BD para hacer clic y pedir detalles.
|
||||
AmbitoId = rv.AmbitoGeografico.Id,
|
||||
|
||||
// 2. El NOMBRE del departamento/municipio para encontrar y colorear el polígono.
|
||||
DepartamentoNombre = rv.AmbitoGeografico.Nombre,
|
||||
|
||||
// 3. El ID del partido ganador.
|
||||
AgrupacionGanadoraId = rv.AgrupacionPoliticaId
|
||||
})
|
||||
.ToListAsync();
|
||||
|
||||
return Ok(resultadosGanadores);
|
||||
}
|
||||
|
||||
[HttpGet("municipio/{ambitoId}")] // Cambiamos el nombre del parámetro de ruta
|
||||
public async Task<IActionResult> GetResultadosPorMunicipio(int ambitoId) // Cambiamos el tipo de string a int
|
||||
{
|
||||
_logger.LogInformation("Buscando resultados para AmbitoGeograficoId: {AmbitoId}", ambitoId);
|
||||
|
||||
// PASO 1: Buscar el Ámbito Geográfico directamente por su CLAVE PRIMARIA (AmbitoGeograficoId).
|
||||
var ambito = await _dbContext.AmbitosGeograficos
|
||||
.AsNoTracking()
|
||||
.FirstOrDefaultAsync(a => a.Id == ambitoId && a.NivelId == 30); // Usamos a.Id == ambitoId
|
||||
|
||||
if (ambito == null)
|
||||
{
|
||||
_logger.LogWarning("No se encontró el ámbito para el ID interno: {AmbitoId} o no es Nivel 30.", ambitoId);
|
||||
return NotFound(new { message = $"No se encontró el municipio con ID interno {ambitoId}" });
|
||||
}
|
||||
_logger.LogInformation("Ámbito encontrado: Id={AmbitoId}, Nombre={AmbitoNombre}", ambito.Id, ambito.Nombre);
|
||||
|
||||
// PASO 2: Usar la CLAVE PRIMARIA (ambito.Id) para buscar el estado del recuento.
|
||||
var estadoRecuento = await _dbContext.EstadosRecuentos
|
||||
.AsNoTracking()
|
||||
.FirstOrDefaultAsync(e => e.AmbitoGeograficoId == ambito.Id);
|
||||
|
||||
if (estadoRecuento == null)
|
||||
{
|
||||
_logger.LogWarning("No se encontró EstadoRecuento para AmbitoGeograficoId: {AmbitoId}", ambito.Id);
|
||||
return NotFound(new { message = $"No se han encontrado resultados de recuento para el municipio {ambito.Nombre}" });
|
||||
}
|
||||
|
||||
// PASO 3: Usar la CLAVE PRIMARIA (ambito.Id) para buscar los votos.
|
||||
var resultadosVotos = await _dbContext.ResultadosVotos
|
||||
.AsNoTracking()
|
||||
.Include(rv => rv.AgrupacionPolitica) // Incluimos el nombre del partido
|
||||
.Where(rv => rv.AmbitoGeograficoId == ambito.Id)
|
||||
.OrderByDescending(rv => rv.CantidadVotos)
|
||||
.ToListAsync();
|
||||
|
||||
// PASO 4: Calcular el total de votos positivos para el porcentaje.
|
||||
long totalVotosPositivos = resultadosVotos.Sum(r => r.CantidadVotos);
|
||||
|
||||
// PASO 5: Mapear todo al DTO de respuesta que el frontend espera.
|
||||
var respuestaDto = new MunicipioResultadosDto
|
||||
{
|
||||
MunicipioNombre = ambito.Nombre,
|
||||
UltimaActualizacion = estadoRecuento.FechaTotalizacion,
|
||||
PorcentajeEscrutado = estadoRecuento.MesasTotalizadasPorcentaje,
|
||||
PorcentajeParticipacion = estadoRecuento.ParticipacionPorcentaje,
|
||||
Resultados = resultadosVotos.Select(rv => new AgrupacionResultadoDto
|
||||
{
|
||||
Nombre = rv.AgrupacionPolitica.Nombre,
|
||||
Votos = rv.CantidadVotos,
|
||||
Porcentaje = totalVotosPositivos > 0 ? (rv.CantidadVotos * 100.0m / totalVotosPositivos) : 0
|
||||
}).ToList(),
|
||||
VotosAdicionales = new VotosAdicionalesDto
|
||||
{
|
||||
EnBlanco = estadoRecuento.VotosEnBlanco,
|
||||
Nulos = estadoRecuento.VotosNulos,
|
||||
Recurridos = estadoRecuento.VotosRecurridos
|
||||
}
|
||||
};
|
||||
|
||||
return Ok(respuestaDto);
|
||||
}
|
||||
}
|
||||
@@ -7,5 +7,6 @@
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
}
|
||||
},
|
||||
"AllowedOrigins": "http://localhost:5173"
|
||||
}
|
||||
|
||||
@@ -1253,6 +1253,14 @@
|
||||
}
|
||||
},
|
||||
"System.Threading.Channels/7.0.0": {},
|
||||
"System.Threading.RateLimiting/9.0.8": {
|
||||
"runtime": {
|
||||
"lib/net9.0/System.Threading.RateLimiting.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.825.36511"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Threading.Tasks.Extensions/4.5.4": {},
|
||||
"System.Windows.Extensions/6.0.0": {
|
||||
"dependencies": {
|
||||
@@ -1296,7 +1304,8 @@
|
||||
"dependencies": {
|
||||
"Elecciones.Core": "1.0.0",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "9.0.8",
|
||||
"Microsoft.Extensions.Http": "9.0.8"
|
||||
"Microsoft.Extensions.Http": "9.0.8",
|
||||
"System.Threading.RateLimiting": "9.0.8"
|
||||
},
|
||||
"runtime": {
|
||||
"Elecciones.Infrastructure.dll": {
|
||||
@@ -2020,6 +2029,13 @@
|
||||
"path": "system.threading.channels/7.0.0",
|
||||
"hashPath": "system.threading.channels.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Threading.RateLimiting/9.0.8": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Kr2vtbLUyZSGz40YoqE1FrNlXyGj4qOvNmm9upEVxLgT8pr/yEubhDMU5xs70ruhchuWO0LrFi76YWHjYUP/SA==",
|
||||
"path": "system.threading.ratelimiting/9.0.8",
|
||||
"hashPath": "system.threading.ratelimiting.9.0.8.nupkg.sha512"
|
||||
},
|
||||
"System.Threading.Tasks.Extensions/4.5.4": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
|
||||
@@ -7,5 +7,6 @@
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
}
|
||||
},
|
||||
"AllowedOrigins": "http://localhost:5173"
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ using System.Reflection;
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Elecciones.Api")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+68dce9415e165633856e4fae9b2d71cc07b4e2ff")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+18e6e8d3c0a378a172ad8e8afd31109673460717")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("Elecciones.Api")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("Elecciones.Api")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@@ -183,3 +183,4 @@ E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Api\bin\Debug\net9.0\Serilog.Se
|
||||
E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Api\bin\Debug\net9.0\Serilog.Sinks.Console.dll
|
||||
E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Api\bin\Debug\net9.0\Serilog.Sinks.Debug.dll
|
||||
E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Api\bin\Debug\net9.0\Serilog.Sinks.File.dll
|
||||
E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Api\bin\Debug\net9.0\System.Threading.RateLimiting.dll
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"GlobalPropertiesHash":"b5T/+ta4fUd8qpIzUTm3KyEwAYYUsU5ASo+CSFM3ByE=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["mhE0FuBM0BOF9SNOE0rY9setCw2ye3UUh7cEPjhgDdY=","t631p0kaOa0gMRIcaPzz1ZVPZ1kuq4pq4kYPWQgoPcM=","PA/Beu9jJpOBY5r5Y1CiSyqrARA2j7LHeWYUnEZpQO8=","ywKm3DCyXg4YCbZAIx3JUlT8N4Irff3GswYUVDST\u002BjQ=","6WTvWQ72AaZBYOVSmaxaci9tc1dW5p7IK9Kscjj2cb0=","vAy46VJ9Gp8QqG/Px4J1mj8jL6ws4/A01UKRmMYfYek=","P8JRhYPpULTLMAydvl3Ky\u002B92/tYDIjui0l66En4aXuQ=","7rMeSoKKF2\u002B9j5kLZ30FlE98meJ1tr4dywVzhYb49Qg="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||
{"GlobalPropertiesHash":"b5T/+ta4fUd8qpIzUTm3KyEwAYYUsU5ASo+CSFM3ByE=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["Dji\u002Bta/0e7zUKw3oe\u002BriV3kbWxZ93FP2z2QIYsHXTl4=","t631p0kaOa0gMRIcaPzz1ZVPZ1kuq4pq4kYPWQgoPcM=","PA/Beu9jJpOBY5r5Y1CiSyqrARA2j7LHeWYUnEZpQO8=","ywKm3DCyXg4YCbZAIx3JUlT8N4Irff3GswYUVDST\u002BjQ=","6WTvWQ72AaZBYOVSmaxaci9tc1dW5p7IK9Kscjj2cb0=","vAy46VJ9Gp8QqG/Px4J1mj8jL6ws4/A01UKRmMYfYek=","cdgbHR/E4DJsddPc\u002BTpzoUMOVNaFJZm33Pw7AxU9Ees=","4r4JGR4hS5m4rsLfuCSZxzrknTBxKFkLQDXc\u002B2KbqTU=","42z\u002Bw0pajpMLFLNS29VoU/hUn9IzvZ/pVLNadS0rApY=","P8JRhYPpULTLMAydvl3Ky\u002B92/tYDIjui0l66En4aXuQ=","ifGdmI/zx2hsc8PYkk8IWTP8aZ9RYmaQbfk383bAiYQ="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||
@@ -1 +1 @@
|
||||
{"GlobalPropertiesHash":"tJTBjV/i0Ihkc6XuOu69wxL8PBac9c9Kak6srMso4pU=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["mhE0FuBM0BOF9SNOE0rY9setCw2ye3UUh7cEPjhgDdY=","t631p0kaOa0gMRIcaPzz1ZVPZ1kuq4pq4kYPWQgoPcM=","PA/Beu9jJpOBY5r5Y1CiSyqrARA2j7LHeWYUnEZpQO8=","ywKm3DCyXg4YCbZAIx3JUlT8N4Irff3GswYUVDST\u002BjQ=","6WTvWQ72AaZBYOVSmaxaci9tc1dW5p7IK9Kscjj2cb0=","vAy46VJ9Gp8QqG/Px4J1mj8jL6ws4/A01UKRmMYfYek=","P8JRhYPpULTLMAydvl3Ky\u002B92/tYDIjui0l66En4aXuQ=","7rMeSoKKF2\u002B9j5kLZ30FlE98meJ1tr4dywVzhYb49Qg="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||
{"GlobalPropertiesHash":"tJTBjV/i0Ihkc6XuOu69wxL8PBac9c9Kak6srMso4pU=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["Dji\u002Bta/0e7zUKw3oe\u002BriV3kbWxZ93FP2z2QIYsHXTl4=","t631p0kaOa0gMRIcaPzz1ZVPZ1kuq4pq4kYPWQgoPcM=","PA/Beu9jJpOBY5r5Y1CiSyqrARA2j7LHeWYUnEZpQO8=","ywKm3DCyXg4YCbZAIx3JUlT8N4Irff3GswYUVDST\u002BjQ=","6WTvWQ72AaZBYOVSmaxaci9tc1dW5p7IK9Kscjj2cb0=","vAy46VJ9Gp8QqG/Px4J1mj8jL6ws4/A01UKRmMYfYek=","cdgbHR/E4DJsddPc\u002BTpzoUMOVNaFJZm33Pw7AxU9Ees=","4r4JGR4hS5m4rsLfuCSZxzrknTBxKFkLQDXc\u002B2KbqTU=","42z\u002Bw0pajpMLFLNS29VoU/hUn9IzvZ/pVLNadS0rApY=","P8JRhYPpULTLMAydvl3Ky\u002B92/tYDIjui0l66En4aXuQ=","ifGdmI/zx2hsc8PYkk8IWTP8aZ9RYmaQbfk383bAiYQ="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||
@@ -1 +1 @@
|
||||
{"GlobalPropertiesHash":"O7YawHw32G/Fh2bs+snZgm9O7okI0WYgTQmXM931znY=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["mhE0FuBM0BOF9SNOE0rY9setCw2ye3UUh7cEPjhgDdY=","t631p0kaOa0gMRIcaPzz1ZVPZ1kuq4pq4kYPWQgoPcM="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||
{"GlobalPropertiesHash":"O7YawHw32G/Fh2bs+snZgm9O7okI0WYgTQmXM931znY=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["Dji\u002Bta/0e7zUKw3oe\u002BriV3kbWxZ93FP2z2QIYsHXTl4=","t631p0kaOa0gMRIcaPzz1ZVPZ1kuq4pq4kYPWQgoPcM="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||
@@ -13,7 +13,7 @@ using System.Reflection;
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Elecciones.Core")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+30f1e751b770bf730fc48b1baefb00f560694f35")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+18e6e8d3c0a378a172ad8e8afd31109673460717")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("Elecciones.Core")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("Elecciones.Core")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@@ -13,7 +13,7 @@ using System.Reflection;
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Elecciones.Database")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+30f1e751b770bf730fc48b1baefb00f560694f35")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+18e6e8d3c0a378a172ad8e8afd31109673460717")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("Elecciones.Database")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("Elecciones.Database")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
"dependencies": {
|
||||
"Elecciones.Core": "1.0.0",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "9.0.8",
|
||||
"Microsoft.Extensions.Http": "9.0.8"
|
||||
"Microsoft.Extensions.Http": "9.0.8",
|
||||
"System.Threading.RateLimiting": "9.0.8"
|
||||
},
|
||||
"runtime": {
|
||||
"Elecciones.Infrastructure.dll": {}
|
||||
@@ -169,6 +170,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Threading.RateLimiting/9.0.8": {
|
||||
"runtime": {
|
||||
"lib/net9.0/System.Threading.RateLimiting.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.825.36511"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Elecciones.Core/1.0.0": {
|
||||
"runtime": {
|
||||
"Elecciones.Core.dll": {
|
||||
@@ -276,6 +285,13 @@
|
||||
"path": "microsoft.extensions.primitives/9.0.8",
|
||||
"hashPath": "microsoft.extensions.primitives.9.0.8.nupkg.sha512"
|
||||
},
|
||||
"System.Threading.RateLimiting/9.0.8": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Kr2vtbLUyZSGz40YoqE1FrNlXyGj4qOvNmm9upEVxLgT8pr/yEubhDMU5xs70ruhchuWO0LrFi76YWHjYUP/SA==",
|
||||
"path": "system.threading.ratelimiting/9.0.8",
|
||||
"hashPath": "system.threading.ratelimiting.9.0.8.nupkg.sha512"
|
||||
},
|
||||
"Elecciones.Core/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -13,7 +13,7 @@ using System.Reflection;
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Elecciones.Infrastructure")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+19b37f73206d043982fc77f8c2359f2598889b64")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+18e6e8d3c0a378a172ad8e8afd31109673460717")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("Elecciones.Infrastructure")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("Elecciones.Infrastructure")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@@ -14,7 +14,7 @@ using System.Reflection;
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Elecciones.Worker")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+19b37f73206d043982fc77f8c2359f2598889b64")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+18e6e8d3c0a378a172ad8e8afd31109673460717")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("Elecciones.Worker")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("Elecciones.Worker")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
Reference in New Issue
Block a user