Fix Panel de Resultados
This commit is contained in:
@@ -9,6 +9,22 @@ import 'react-circular-progressbar/dist/styles.css';
|
|||||||
const formatPercent = (num: number) => `${(num || 0).toFixed(2).replace('.', ',')}%`;
|
const formatPercent = (num: number) => `${(num || 0).toFixed(2).replace('.', ',')}%`;
|
||||||
const formatVotes = (num: number) => Math.round(num).toLocaleString('es-AR');
|
const formatVotes = (num: number) => Math.round(num).toLocaleString('es-AR');
|
||||||
|
|
||||||
|
const SvgDefs = () => (
|
||||||
|
<svg style={{ height: 0, width: 0, position: 'absolute' }}>
|
||||||
|
<defs>
|
||||||
|
{/* El gradiente ahora se define para que el color oscuro se mantenga en la segunda mitad del recorrido vertical */}
|
||||||
|
<linearGradient id="participationGradient" gradientTransform="rotate(90)">
|
||||||
|
<stop offset="0%" stopColor="#e0f3ffff" />
|
||||||
|
<stop offset="100%" stopColor="#007bff" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="scrutinizedGradient" gradientTransform="rotate(90)">
|
||||||
|
<stop offset="0%" stopColor="#e0f3ffff" />
|
||||||
|
<stop offset="100%" stopColor="#007bff" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
|
||||||
interface PanelResultadosProps {
|
interface PanelResultadosProps {
|
||||||
resultados: ResultadoTicker[];
|
resultados: ResultadoTicker[];
|
||||||
estadoRecuento: EstadoRecuentoTicker;
|
estadoRecuento: EstadoRecuentoTicker;
|
||||||
@@ -17,17 +33,20 @@ interface PanelResultadosProps {
|
|||||||
export const PanelResultados = ({ resultados, estadoRecuento }: PanelResultadosProps) => {
|
export const PanelResultados = ({ resultados, estadoRecuento }: PanelResultadosProps) => {
|
||||||
return (
|
return (
|
||||||
<div className="panel-resultados">
|
<div className="panel-resultados">
|
||||||
|
<SvgDefs />
|
||||||
<div className="panel-estado-recuento">
|
<div className="panel-estado-recuento">
|
||||||
<div className="estado-item">
|
<div className="estado-item">
|
||||||
<CircularProgressbar
|
<CircularProgressbar
|
||||||
value={estadoRecuento.participacionPorcentaje}
|
value={estadoRecuento.participacionPorcentaje}
|
||||||
text={formatPercent(estadoRecuento.participacionPorcentaje)}
|
text={formatPercent(estadoRecuento.participacionPorcentaje)}
|
||||||
strokeWidth={10}
|
strokeWidth={12}
|
||||||
|
circleRatio={0.75} /* Se convierte en un arco de 270 grados */
|
||||||
styles={buildStyles({
|
styles={buildStyles({
|
||||||
textColor: '#333',
|
textColor: '#333',
|
||||||
pathColor: '#28a745',
|
pathColor: 'url(#participationGradient)',
|
||||||
trailColor: '#e9ecef',
|
trailColor: '#e9ecef',
|
||||||
textSize: '24px',
|
textSize: '22px',
|
||||||
|
rotation: 0.625, /* Rota el inicio para que la apertura quede abajo */
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
<span>Participación</span>
|
<span>Participación</span>
|
||||||
@@ -36,12 +55,14 @@ export const PanelResultados = ({ resultados, estadoRecuento }: PanelResultadosP
|
|||||||
<CircularProgressbar
|
<CircularProgressbar
|
||||||
value={estadoRecuento.mesasTotalizadasPorcentaje}
|
value={estadoRecuento.mesasTotalizadasPorcentaje}
|
||||||
text={formatPercent(estadoRecuento.mesasTotalizadasPorcentaje)}
|
text={formatPercent(estadoRecuento.mesasTotalizadasPorcentaje)}
|
||||||
strokeWidth={10}
|
strokeWidth={12}
|
||||||
|
circleRatio={0.75} /* Se convierte en un arco de 270 grados */
|
||||||
styles={buildStyles({
|
styles={buildStyles({
|
||||||
textColor: '#333',
|
textColor: '#333',
|
||||||
pathColor: '#007bff',
|
pathColor: 'url(#scrutinizedGradient)',
|
||||||
trailColor: '#e9ecef',
|
trailColor: '#e9ecef',
|
||||||
textSize: '24px',
|
textSize: '22px',
|
||||||
|
rotation: 0.625, /* Rota el inicio para que la apertura quede abajo */
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
<span>Escrutado</span>
|
<span>Escrutado</span>
|
||||||
|
|||||||
@@ -215,7 +215,7 @@ using (var scope = app.Services.CreateScope())
|
|||||||
Console.WriteLine("--> Seeded default configurations.");
|
Console.WriteLine("--> Seeded default configurations.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- SEEDER FINAL Y AUTOSUFICIENTE: Resultados Nacionales de Simulación para todo el país ---
|
// --- SEEDER FINAL Y AUTOSUFICIENTE (CON DATOS DE RECUENTO) ---
|
||||||
using (var scope = app.Services.CreateScope())
|
using (var scope = app.Services.CreateScope())
|
||||||
{
|
{
|
||||||
var services = scope.ServiceProvider;
|
var services = scope.ServiceProvider;
|
||||||
@@ -226,7 +226,7 @@ using (var scope = app.Services.CreateScope())
|
|||||||
|
|
||||||
if (!context.ResultadosVotos.Any(r => r.EleccionId == eleccionNacionalId))
|
if (!context.ResultadosVotos.Any(r => r.EleccionId == eleccionNacionalId))
|
||||||
{
|
{
|
||||||
logger.LogInformation("--> No se encontraron datos para la elección nacional ID {EleccionId}. Generando datos de simulación para TODO EL PAÍS...", eleccionNacionalId);
|
logger.LogInformation("--> No se encontraron datos para la elección nacional ID {EleccionId}. Generando datos de simulación COMPLETOS...", eleccionNacionalId);
|
||||||
|
|
||||||
var eleccionNacional = await context.Elecciones.FindAsync(eleccionNacionalId) ?? new Eleccion { Id = eleccionNacionalId, Nombre = "Elecciones Nacionales 2025", Nivel = "Nacional", DistritoId = "00", Fecha = new DateOnly(2025, 10, 26) };
|
var eleccionNacional = await context.Elecciones.FindAsync(eleccionNacionalId) ?? new Eleccion { Id = eleccionNacionalId, Nombre = "Elecciones Nacionales 2025", Nivel = "Nacional", DistritoId = "00", Fecha = new DateOnly(2025, 10, 26) };
|
||||||
if (!context.Elecciones.Local.Any(e => e.Id == eleccionNacionalId)) context.Elecciones.Add(eleccionNacional);
|
if (!context.Elecciones.Local.Any(e => e.Id == eleccionNacionalId)) context.Elecciones.Add(eleccionNacional);
|
||||||
@@ -255,72 +255,105 @@ using (var scope = app.Services.CreateScope())
|
|||||||
await context.SaveChangesAsync();
|
await context.SaveChangesAsync();
|
||||||
logger.LogInformation("--> Verificados/creados los 24 ámbitos geográficos de Nivel 10.");
|
logger.LogInformation("--> Verificados/creados los 24 ámbitos geográficos de Nivel 10.");
|
||||||
|
|
||||||
// --- INICIO DE LA LÓGICA DE CREACIÓN DE MUNICIPIOS DE EJEMPLO ---
|
|
||||||
logger.LogInformation("--> Verificando existencia de municipios (Nivel 30) para cada provincia...");
|
|
||||||
var provinciasEnDb = await context.AmbitosGeograficos.AsNoTracking().Where(a => a.NivelId == 10).ToListAsync();
|
var provinciasEnDb = await context.AmbitosGeograficos.AsNoTracking().Where(a => a.NivelId == 10).ToListAsync();
|
||||||
foreach (var provincia in provinciasEnDb)
|
foreach (var provincia in provinciasEnDb)
|
||||||
{
|
{
|
||||||
bool existenMunicipios = await context.AmbitosGeograficos.AnyAsync(a => a.NivelId == 30 && a.DistritoId == provincia.DistritoId);
|
if (!await context.AmbitosGeograficos.AnyAsync(a => a.NivelId == 30 && a.DistritoId == provincia.DistritoId))
|
||||||
if (!existenMunicipios)
|
|
||||||
{
|
{
|
||||||
logger.LogWarning("--> No se encontraron municipios para {Provincia}. Creando 5 municipios de ejemplo...", provincia.Nombre);
|
logger.LogWarning("--> No se encontraron municipios para {Provincia}. Creando 5 de ejemplo.", provincia.Nombre);
|
||||||
for (int i = 1; i <= 5; i++)
|
for (int i = 1; i <= 5; i++)
|
||||||
{
|
{
|
||||||
context.AmbitosGeograficos.Add(new AmbitoGeografico
|
context.AmbitosGeograficos.Add(new AmbitoGeografico { Nombre = $"{provincia.Nombre} - Depto. {i}", NivelId = 30, DistritoId = provincia.DistritoId });
|
||||||
{
|
|
||||||
Nombre = $"{provincia.Nombre} - Municipio de Ejemplo {i}",
|
|
||||||
NivelId = 30,
|
|
||||||
DistritoId = provincia.DistritoId
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
await context.SaveChangesAsync();
|
await context.SaveChangesAsync();
|
||||||
// --- FIN DE LA LÓGICA DE CREACIÓN DE MUNICIPIOS DE EJEMPLO ---
|
|
||||||
|
|
||||||
var todosLosPartidos = await context.AgrupacionesPoliticas.Take(5).ToListAsync();
|
var todosLosPartidos = await context.AgrupacionesPoliticas.Take(5).ToListAsync();
|
||||||
if (!todosLosPartidos.Any()) {
|
if (!todosLosPartidos.Any()) {
|
||||||
logger.LogWarning("--> No hay agrupaciones políticas en la BD. No se pueden generar votos de simulación.");
|
logger.LogWarning("--> No hay partidos, no se pueden generar votos.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var nuevosResultados = new List<ResultadoVoto>();
|
var nuevosResultados = new List<ResultadoVoto>();
|
||||||
|
var nuevosEstados = new List<EstadoRecuentoGeneral>();
|
||||||
var rand = new Random();
|
var rand = new Random();
|
||||||
|
|
||||||
|
long totalVotosNacional = 0;
|
||||||
|
int totalMesasNacional = 0;
|
||||||
|
int totalMesasEscrutadasNacional = 0;
|
||||||
|
|
||||||
foreach (var provincia in provinciasEnDb)
|
foreach (var provincia in provinciasEnDb)
|
||||||
{
|
{
|
||||||
var municipiosDeProvincia = await context.AmbitosGeograficos.AsNoTracking()
|
var municipiosDeProvincia = await context.AmbitosGeograficos.AsNoTracking().Where(a => a.NivelId == 30 && a.DistritoId == provincia.DistritoId).ToListAsync();
|
||||||
.Where(a => a.NivelId == 30 && a.DistritoId == provincia.DistritoId).ToListAsync();
|
|
||||||
|
|
||||||
if (!municipiosDeProvincia.Any()) continue;
|
if (!municipiosDeProvincia.Any()) continue;
|
||||||
|
|
||||||
logger.LogInformation("--> Generando votos para {Count} municipios en {Provincia}...", municipiosDeProvincia.Count, provincia.Nombre);
|
long totalVotosProvincia = 0;
|
||||||
|
|
||||||
int partidoIndex = rand.Next(todosLosPartidos.Count);
|
int partidoIndex = rand.Next(todosLosPartidos.Count);
|
||||||
foreach (var municipio in municipiosDeProvincia)
|
foreach (var municipio in municipiosDeProvincia)
|
||||||
{
|
{
|
||||||
var partidoGanador = todosLosPartidos[partidoIndex % todosLosPartidos.Count];
|
var partidoGanador = todosLosPartidos[partidoIndex++ % todosLosPartidos.Count];
|
||||||
partidoIndex++;
|
var votosGanador = rand.Next(25000, 70000);
|
||||||
nuevosResultados.Add(new ResultadoVoto {
|
nuevosResultados.Add(new ResultadoVoto { EleccionId = eleccionNacionalId, AmbitoGeograficoId = municipio.Id, CategoriaId = categoriaDiputadosNac.Id, AgrupacionPoliticaId = partidoGanador.Id, CantidadVotos = votosGanador });
|
||||||
EleccionId = eleccionNacional.Id, AmbitoGeograficoId = municipio.Id, CategoriaId = categoriaDiputadosNac.Id,
|
totalVotosProvincia += votosGanador;
|
||||||
AgrupacionPoliticaId = partidoGanador.Id, CantidadVotos = rand.Next(25000, 70000)
|
|
||||||
});
|
var otrosPartidos = todosLosPartidos.Where(p => p.Id != partidoGanador.Id).OrderBy(p => rand.Next()).Take(rand.Next(3, todosLosPartidos.Count));
|
||||||
var otrosPartidos = todosLosPartidos.Where(p => p.Id != partidoGanador.Id).OrderBy(p => rand.Next()).Take(rand.Next(3, 6));
|
|
||||||
foreach (var competidor in otrosPartidos) {
|
foreach (var competidor in otrosPartidos) {
|
||||||
nuevosResultados.Add(new ResultadoVoto {
|
var votosCompetidor = rand.Next(1000, 24000);
|
||||||
EleccionId = eleccionNacional.Id, AmbitoGeograficoId = municipio.Id, CategoriaId = categoriaDiputadosNac.Id,
|
nuevosResultados.Add(new ResultadoVoto { EleccionId = eleccionNacionalId, AmbitoGeograficoId = municipio.Id, CategoriaId = categoriaDiputadosNac.Id, AgrupacionPoliticaId = competidor.Id, CantidadVotos = votosCompetidor });
|
||||||
AgrupacionPoliticaId = competidor.Id, CantidadVotos = rand.Next(1000, 24000)
|
totalVotosProvincia += votosCompetidor;
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --- LÓGICA DE DATOS DE RECUENTO POR PROVINCIA ---
|
||||||
|
var mesasEsperadasProvincia = municipiosDeProvincia.Count * rand.Next(15, 30);
|
||||||
|
var mesasTotalizadasProvincia = (int)(mesasEsperadasProvincia * (rand.Next(75, 99) / 100.0));
|
||||||
|
var cantidadElectoresProvincia = mesasEsperadasProvincia * 350;
|
||||||
|
var participacionProvincia = (decimal)(rand.Next(65, 85) / 100.0);
|
||||||
|
|
||||||
|
nuevosEstados.Add(new EstadoRecuentoGeneral {
|
||||||
|
EleccionId = eleccionNacionalId, AmbitoGeograficoId = provincia.Id, CategoriaId = categoriaDiputadosNac.Id,
|
||||||
|
FechaTotalizacion = DateTime.UtcNow,
|
||||||
|
MesasEsperadas = mesasEsperadasProvincia,
|
||||||
|
MesasTotalizadas = mesasTotalizadasProvincia,
|
||||||
|
MesasTotalizadasPorcentaje = (decimal)mesasTotalizadasProvincia * 100 / mesasEsperadasProvincia,
|
||||||
|
CantidadElectores = cantidadElectoresProvincia,
|
||||||
|
CantidadVotantes = (int)(cantidadElectoresProvincia * participacionProvincia),
|
||||||
|
ParticipacionPorcentaje = participacionProvincia * 100
|
||||||
|
});
|
||||||
|
|
||||||
|
totalVotosNacional += totalVotosProvincia;
|
||||||
|
totalMesasNacional += mesasEsperadasProvincia;
|
||||||
|
totalMesasEscrutadasNacional += mesasTotalizadasProvincia;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --- LÓGICA DE DATOS DE RECUENTO A NIVEL NACIONAL ---
|
||||||
|
var ambitoNacional = await context.AmbitosGeograficos.AsNoTracking().FirstOrDefaultAsync(a => a.NivelId == 0);
|
||||||
|
if (ambitoNacional == null) {
|
||||||
|
ambitoNacional = new AmbitoGeografico { Nombre = "Nacional", NivelId = 0, DistritoId = "00" };
|
||||||
|
context.AmbitosGeograficos.Add(ambitoNacional);
|
||||||
|
await context.SaveChangesAsync();
|
||||||
|
}
|
||||||
|
var participacionNacional = (decimal)(rand.Next(70, 88) / 100.0);
|
||||||
|
nuevosEstados.Add(new EstadoRecuentoGeneral {
|
||||||
|
EleccionId = eleccionNacionalId, AmbitoGeograficoId = ambitoNacional.Id, CategoriaId = categoriaDiputadosNac.Id,
|
||||||
|
FechaTotalizacion = DateTime.UtcNow,
|
||||||
|
MesasEsperadas = totalMesasNacional,
|
||||||
|
MesasTotalizadas = totalMesasEscrutadasNacional,
|
||||||
|
MesasTotalizadasPorcentaje = (decimal)totalMesasEscrutadasNacional * 100 / totalMesasNacional,
|
||||||
|
CantidadElectores = totalMesasNacional * 350,
|
||||||
|
CantidadVotantes = (int)((totalMesasNacional * 350) * participacionNacional),
|
||||||
|
ParticipacionPorcentaje = participacionNacional * 100
|
||||||
|
});
|
||||||
|
|
||||||
if (nuevosResultados.Any()) {
|
if (nuevosResultados.Any()) {
|
||||||
await context.ResultadosVotos.AddRangeAsync(nuevosResultados);
|
await context.ResultadosVotos.AddRangeAsync(nuevosResultados);
|
||||||
|
await context.EstadosRecuentosGenerales.AddRangeAsync(nuevosEstados);
|
||||||
await context.SaveChangesAsync();
|
await context.SaveChangesAsync();
|
||||||
logger.LogInformation("--> Se generaron {Count} registros de votos de simulación para todo el país.", nuevosResultados.Count);
|
logger.LogInformation("--> Se generaron {Votos} registros de votos y {Estados} de estados de recuento.", nuevosResultados.Count, nuevosEstados.Count);
|
||||||
} else {
|
} else {
|
||||||
logger.LogWarning("--> No se encontraron municipios en la BD para generar votos de simulación.");
|
logger.LogWarning("--> No se generaron datos de simulación.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ using System.Reflection;
|
|||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Elecciones.Api")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("Elecciones.Api")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+3750d1a56d3311ec92c79dc6cb564a0b8a68239c")]
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5a8bee52d57b0f215705f3a7efb654169f85a7ae")]
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("Elecciones.Api")]
|
[assembly: System.Reflection.AssemblyProductAttribute("Elecciones.Api")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("Elecciones.Api")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("Elecciones.Api")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"GlobalPropertiesHash":"b5T/+ta4fUd8qpIzUTm3KyEwAYYUsU5ASo+CSFM3ByE=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["TyIJk/eQMWjmB5LsDE\u002BZIJC9P9ciVxd7bnzRiTZsGt4=","t631p0kaOa0gMRIcaPzz1ZVPZ1kuq4pq4kYPWQgoPcM=","PA/Beu9jJpOBY5r5Y1CiSyqrARA2j7LHeWYUnEZpQO8=","E2ODTAlJxzsXY1iP1eB/02NIUK\u002BnQveGlWAOHY1cpgA=","6WTvWQ72AaZBYOVSmaxaci9tc1dW5p7IK9Kscjj2cb0=","vAy46VJ9Gp8QqG/Px4J1mj8jL6ws4/A01UKRmMYfYek=","cdgbHR/E4DJsddPc\u002BTpzoUMOVNaFJZm33Pw7AxU9Ees=","4r4JGR4hS5m4rsLfuCSZxzrknTBxKFkLQDXc\u002B2KbqTU=","yVoZ4UnBcSOapsJIi046hnn7ylD3jAcEBUxQ\u002Brkvj/4=","/GfbpJthEWmsuz0uFx1QLHM7gyM1wLLeQgAIl4SzUD4=","i5\u002B5LcfxQD8meRAkQbVf4wMvjxSE4\u002BjCd2/FdPtMpms=","AvSkxVPIg0GjnB1RJ4hDNyo9p9GONrzDs8uVuixH\u002BOE=","IgT9pOgRnK37qfILj2QcjFoBZ180HMt\u002BScgje2iYOo4=","ezUlOMzNZmyKDIe1wwXqvX\u002BvhwfB992xNVts7r2zcTc=","y2BV4WpkQuLfqQhfOQBtmuzh940c3s4LAopGKfztfTE=","lHTUEsMkDu8nqXtfTwl7FRfgocyyc7RI5O/edTHN1\u002B0=","A7nz7qgOtQ1CwZZLvNnr0b5QZB3fTi3y4i6y7rBIcxQ=","znnuRi2tsk7AACuYo4WSgj7NcLriG4PKVaF4L35SvDk=","GelE32odx/vTului267wqi6zL3abBnF9yvwC2Q66LoM=","TEsXImnzxFKTIq2f5fiDu7i6Ar/cbecW5MZ3z8Wb/a4=","5WogJu\u002BUPlF\u002BE5mq/ILtDXpVwqwmhHtsEB13nmT5JJk=","dcHQRkttjMjo2dvhL7hA9t4Pg\u002B7OnjZpkFmakT4QR9U=","Of8nTYw5l\u002BgiAJo7z6XYIntG2tUtCFcILzHbTiiXn\u002Bw=","PDy\u002BTiayvNAoXXBEgwC/kCojpgOOMI6RQOIoSXs3LJc=","ePXrkee3hv3wHUr8S7aYmRVvXUTxQf76zApKGv3/l3o=","DXx5dQywLo3UsY2zQaUG\u002BbW4ObiYbybxPBWxeJD2bhk=","muVh5sjH3sgdvuz4TbuTwTggX1uDnsWXgoosMKST/r4=","nrP5gSIA5vzgp8v12CAOr943QYLxU4Til6oiCcWSNI8=","yMd45U9BK07I3b3fBQ627PWTYyZ2ZjrmFc5VD\u002BQVx1Q=","xKskvcoJU0RVRN1a5dRqKRM7IP5vmmbraUaPFYjhnCc=","p7BjQw7aSZjfOCqmKm7/kPO9qegEQZBfirMjlOx/I1I=","MI0hVVLYavEhzHq/Z1UbajfrxanA1aET19aOH8G2ImI=","46MA\u002Blq7j9R/uzmiVYtYpsRnGYG/Wwao3ZdubH\u002B4izQ=","P8JRhYPpULTLMAydvl3Ky\u002B92/tYDIjui0l66En4aXuQ=","bU7YiR/er3vUMAl0wuUE995hYVK8QhuhabOYX6kCMds="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
{"GlobalPropertiesHash":"b5T/+ta4fUd8qpIzUTm3KyEwAYYUsU5ASo+CSFM3ByE=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["TyIJk/eQMWjmB5LsDE\u002BZIJC9P9ciVxd7bnzRiTZsGt4=","t631p0kaOa0gMRIcaPzz1ZVPZ1kuq4pq4kYPWQgoPcM=","PA/Beu9jJpOBY5r5Y1CiSyqrARA2j7LHeWYUnEZpQO8=","E2ODTAlJxzsXY1iP1eB/02NIUK\u002BnQveGlWAOHY1cpgA=","cdgbHR/E4DJsddPc\u002BTpzoUMOVNaFJZm33Pw7AxU9Ees=","4r4JGR4hS5m4rsLfuCSZxzrknTBxKFkLQDXc\u002B2KbqTU=","yVoZ4UnBcSOapsJIi046hnn7ylD3jAcEBUxQ\u002Brkvj/4=","/GfbpJthEWmsuz0uFx1QLHM7gyM1wLLeQgAIl4SzUD4=","i5\u002B5LcfxQD8meRAkQbVf4wMvjxSE4\u002BjCd2/FdPtMpms=","AvSkxVPIg0GjnB1RJ4hDNyo9p9GONrzDs8uVuixH\u002BOE=","IgT9pOgRnK37qfILj2QcjFoBZ180HMt\u002BScgje2iYOo4=","ezUlOMzNZmyKDIe1wwXqvX\u002BvhwfB992xNVts7r2zcTc=","y2BV4WpkQuLfqQhfOQBtmuzh940c3s4LAopGKfztfTE=","lHTUEsMkDu8nqXtfTwl7FRfgocyyc7RI5O/edTHN1\u002B0=","A7nz7qgOtQ1CwZZLvNnr0b5QZB3fTi3y4i6y7rBIcxQ=","znnuRi2tsk7AACuYo4WSgj7NcLriG4PKVaF4L35SvDk=","GelE32odx/vTului267wqi6zL3abBnF9yvwC2Q66LoM=","TEsXImnzxFKTIq2f5fiDu7i6Ar/cbecW5MZ3z8Wb/a4=","5WogJu\u002BUPlF\u002BE5mq/ILtDXpVwqwmhHtsEB13nmT5JJk=","dcHQRkttjMjo2dvhL7hA9t4Pg\u002B7OnjZpkFmakT4QR9U=","Of8nTYw5l\u002BgiAJo7z6XYIntG2tUtCFcILzHbTiiXn\u002Bw=","PDy\u002BTiayvNAoXXBEgwC/kCojpgOOMI6RQOIoSXs3LJc=","ePXrkee3hv3wHUr8S7aYmRVvXUTxQf76zApKGv3/l3o=","DXx5dQywLo3UsY2zQaUG\u002BbW4ObiYbybxPBWxeJD2bhk=","muVh5sjH3sgdvuz4TbuTwTggX1uDnsWXgoosMKST/r4=","nrP5gSIA5vzgp8v12CAOr943QYLxU4Til6oiCcWSNI8=","yMd45U9BK07I3b3fBQ627PWTYyZ2ZjrmFc5VD\u002BQVx1Q=","xKskvcoJU0RVRN1a5dRqKRM7IP5vmmbraUaPFYjhnCc=","p7BjQw7aSZjfOCqmKm7/kPO9qegEQZBfirMjlOx/I1I=","MI0hVVLYavEhzHq/Z1UbajfrxanA1aET19aOH8G2ImI=","2dY8CqW9fAY8yN0foa\u002BZp2gc0RfPoPmB/tKSj1QoTw0=","79rfGLH4UjfTPvc//\u002BZjnBqdz585pUtYZ0/hwE2iEic=","PUqgvMdfTQkF5lpBVtHv2teQLV5WaEH0xMKTmINe2YQ=","\u002BFI0b4ppdxel/pby/y/xKImHrtdxo2g83OhskdREyIg=","ayv780bSyYJGn9z2hycOzUCHGRbnvrzG/wr0RB8XoSg=","P8JRhYPpULTLMAydvl3Ky\u002B92/tYDIjui0l66En4aXuQ=","WbNXPR1x3J5zRGe6yPRR\u002BWmWo3I/jnjzOyd\u002BJP8MhMI="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"GlobalPropertiesHash":"tJTBjV/i0Ihkc6XuOu69wxL8PBac9c9Kak6srMso4pU=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["TyIJk/eQMWjmB5LsDE\u002BZIJC9P9ciVxd7bnzRiTZsGt4=","t631p0kaOa0gMRIcaPzz1ZVPZ1kuq4pq4kYPWQgoPcM=","PA/Beu9jJpOBY5r5Y1CiSyqrARA2j7LHeWYUnEZpQO8=","E2ODTAlJxzsXY1iP1eB/02NIUK\u002BnQveGlWAOHY1cpgA=","6WTvWQ72AaZBYOVSmaxaci9tc1dW5p7IK9Kscjj2cb0=","vAy46VJ9Gp8QqG/Px4J1mj8jL6ws4/A01UKRmMYfYek=","cdgbHR/E4DJsddPc\u002BTpzoUMOVNaFJZm33Pw7AxU9Ees=","4r4JGR4hS5m4rsLfuCSZxzrknTBxKFkLQDXc\u002B2KbqTU=","yVoZ4UnBcSOapsJIi046hnn7ylD3jAcEBUxQ\u002Brkvj/4=","/GfbpJthEWmsuz0uFx1QLHM7gyM1wLLeQgAIl4SzUD4=","i5\u002B5LcfxQD8meRAkQbVf4wMvjxSE4\u002BjCd2/FdPtMpms=","AvSkxVPIg0GjnB1RJ4hDNyo9p9GONrzDs8uVuixH\u002BOE=","IgT9pOgRnK37qfILj2QcjFoBZ180HMt\u002BScgje2iYOo4=","ezUlOMzNZmyKDIe1wwXqvX\u002BvhwfB992xNVts7r2zcTc=","y2BV4WpkQuLfqQhfOQBtmuzh940c3s4LAopGKfztfTE=","lHTUEsMkDu8nqXtfTwl7FRfgocyyc7RI5O/edTHN1\u002B0=","A7nz7qgOtQ1CwZZLvNnr0b5QZB3fTi3y4i6y7rBIcxQ=","znnuRi2tsk7AACuYo4WSgj7NcLriG4PKVaF4L35SvDk=","GelE32odx/vTului267wqi6zL3abBnF9yvwC2Q66LoM=","TEsXImnzxFKTIq2f5fiDu7i6Ar/cbecW5MZ3z8Wb/a4=","5WogJu\u002BUPlF\u002BE5mq/ILtDXpVwqwmhHtsEB13nmT5JJk=","dcHQRkttjMjo2dvhL7hA9t4Pg\u002B7OnjZpkFmakT4QR9U=","Of8nTYw5l\u002BgiAJo7z6XYIntG2tUtCFcILzHbTiiXn\u002Bw=","PDy\u002BTiayvNAoXXBEgwC/kCojpgOOMI6RQOIoSXs3LJc=","ePXrkee3hv3wHUr8S7aYmRVvXUTxQf76zApKGv3/l3o=","DXx5dQywLo3UsY2zQaUG\u002BbW4ObiYbybxPBWxeJD2bhk=","muVh5sjH3sgdvuz4TbuTwTggX1uDnsWXgoosMKST/r4=","nrP5gSIA5vzgp8v12CAOr943QYLxU4Til6oiCcWSNI8=","yMd45U9BK07I3b3fBQ627PWTYyZ2ZjrmFc5VD\u002BQVx1Q=","xKskvcoJU0RVRN1a5dRqKRM7IP5vmmbraUaPFYjhnCc=","p7BjQw7aSZjfOCqmKm7/kPO9qegEQZBfirMjlOx/I1I=","MI0hVVLYavEhzHq/Z1UbajfrxanA1aET19aOH8G2ImI=","46MA\u002Blq7j9R/uzmiVYtYpsRnGYG/Wwao3ZdubH\u002B4izQ=","P8JRhYPpULTLMAydvl3Ky\u002B92/tYDIjui0l66En4aXuQ=","bU7YiR/er3vUMAl0wuUE995hYVK8QhuhabOYX6kCMds="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
{"GlobalPropertiesHash":"tJTBjV/i0Ihkc6XuOu69wxL8PBac9c9Kak6srMso4pU=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["TyIJk/eQMWjmB5LsDE\u002BZIJC9P9ciVxd7bnzRiTZsGt4=","t631p0kaOa0gMRIcaPzz1ZVPZ1kuq4pq4kYPWQgoPcM=","PA/Beu9jJpOBY5r5Y1CiSyqrARA2j7LHeWYUnEZpQO8=","E2ODTAlJxzsXY1iP1eB/02NIUK\u002BnQveGlWAOHY1cpgA=","cdgbHR/E4DJsddPc\u002BTpzoUMOVNaFJZm33Pw7AxU9Ees=","4r4JGR4hS5m4rsLfuCSZxzrknTBxKFkLQDXc\u002B2KbqTU=","yVoZ4UnBcSOapsJIi046hnn7ylD3jAcEBUxQ\u002Brkvj/4=","/GfbpJthEWmsuz0uFx1QLHM7gyM1wLLeQgAIl4SzUD4=","i5\u002B5LcfxQD8meRAkQbVf4wMvjxSE4\u002BjCd2/FdPtMpms=","AvSkxVPIg0GjnB1RJ4hDNyo9p9GONrzDs8uVuixH\u002BOE=","IgT9pOgRnK37qfILj2QcjFoBZ180HMt\u002BScgje2iYOo4=","ezUlOMzNZmyKDIe1wwXqvX\u002BvhwfB992xNVts7r2zcTc=","y2BV4WpkQuLfqQhfOQBtmuzh940c3s4LAopGKfztfTE=","lHTUEsMkDu8nqXtfTwl7FRfgocyyc7RI5O/edTHN1\u002B0=","A7nz7qgOtQ1CwZZLvNnr0b5QZB3fTi3y4i6y7rBIcxQ=","znnuRi2tsk7AACuYo4WSgj7NcLriG4PKVaF4L35SvDk=","GelE32odx/vTului267wqi6zL3abBnF9yvwC2Q66LoM=","TEsXImnzxFKTIq2f5fiDu7i6Ar/cbecW5MZ3z8Wb/a4=","5WogJu\u002BUPlF\u002BE5mq/ILtDXpVwqwmhHtsEB13nmT5JJk=","dcHQRkttjMjo2dvhL7hA9t4Pg\u002B7OnjZpkFmakT4QR9U=","Of8nTYw5l\u002BgiAJo7z6XYIntG2tUtCFcILzHbTiiXn\u002Bw=","PDy\u002BTiayvNAoXXBEgwC/kCojpgOOMI6RQOIoSXs3LJc=","ePXrkee3hv3wHUr8S7aYmRVvXUTxQf76zApKGv3/l3o=","DXx5dQywLo3UsY2zQaUG\u002BbW4ObiYbybxPBWxeJD2bhk=","muVh5sjH3sgdvuz4TbuTwTggX1uDnsWXgoosMKST/r4=","nrP5gSIA5vzgp8v12CAOr943QYLxU4Til6oiCcWSNI8=","yMd45U9BK07I3b3fBQ627PWTYyZ2ZjrmFc5VD\u002BQVx1Q=","xKskvcoJU0RVRN1a5dRqKRM7IP5vmmbraUaPFYjhnCc=","p7BjQw7aSZjfOCqmKm7/kPO9qegEQZBfirMjlOx/I1I=","MI0hVVLYavEhzHq/Z1UbajfrxanA1aET19aOH8G2ImI=","2dY8CqW9fAY8yN0foa\u002BZp2gc0RfPoPmB/tKSj1QoTw0=","79rfGLH4UjfTPvc//\u002BZjnBqdz585pUtYZ0/hwE2iEic=","PUqgvMdfTQkF5lpBVtHv2teQLV5WaEH0xMKTmINe2YQ=","\u002BFI0b4ppdxel/pby/y/xKImHrtdxo2g83OhskdREyIg=","ayv780bSyYJGn9z2hycOzUCHGRbnvrzG/wr0RB8XoSg=","P8JRhYPpULTLMAydvl3Ky\u002B92/tYDIjui0l66En4aXuQ=","WbNXPR1x3J5zRGe6yPRR\u002BWmWo3I/jnjzOyd\u002BJP8MhMI="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||||
@@ -13,7 +13,7 @@ using System.Reflection;
|
|||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Elecciones.Core")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("Elecciones.Core")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+3a8f64bf854b2bdf66d83e503aaacc7dca77138e")]
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5a8bee52d57b0f215705f3a7efb654169f85a7ae")]
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("Elecciones.Core")]
|
[assembly: System.Reflection.AssemblyProductAttribute("Elecciones.Core")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("Elecciones.Core")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("Elecciones.Core")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ using System.Reflection;
|
|||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Elecciones.Database")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("Elecciones.Database")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+3a8f64bf854b2bdf66d83e503aaacc7dca77138e")]
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5a8bee52d57b0f215705f3a7efb654169f85a7ae")]
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("Elecciones.Database")]
|
[assembly: System.Reflection.AssemblyProductAttribute("Elecciones.Database")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("Elecciones.Database")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("Elecciones.Database")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ using System.Reflection;
|
|||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Elecciones.Infrastructure")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("Elecciones.Infrastructure")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+3a8f64bf854b2bdf66d83e503aaacc7dca77138e")]
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5a8bee52d57b0f215705f3a7efb654169f85a7ae")]
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("Elecciones.Infrastructure")]
|
[assembly: System.Reflection.AssemblyProductAttribute("Elecciones.Infrastructure")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("Elecciones.Infrastructure")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("Elecciones.Infrastructure")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
|||||||
Reference in New Issue
Block a user