101 lines
4.5 KiB
C#
101 lines
4.5 KiB
C#
|
|
// src/Elecciones.Infrastructure/Services/FakeElectoralApiService.cs
|
||
|
|
using Elecciones.Core.DTOs;
|
||
|
|
using Microsoft.Extensions.Logging;
|
||
|
|
|
||
|
|
namespace Elecciones.Infrastructure.Services;
|
||
|
|
|
||
|
|
public class FakeElectoralApiService : IElectoralApiService
|
||
|
|
{
|
||
|
|
private readonly ILogger<FakeElectoralApiService> _logger;
|
||
|
|
|
||
|
|
public FakeElectoralApiService(ILogger<FakeElectoralApiService> logger)
|
||
|
|
{
|
||
|
|
_logger = logger;
|
||
|
|
}
|
||
|
|
|
||
|
|
public Task<string?> GetAuthTokenAsync()
|
||
|
|
{
|
||
|
|
_logger.LogWarning("--- USANDO SERVICIO FALSO (FAKE) ---");
|
||
|
|
_logger.LogInformation("Simulando obtención de token...");
|
||
|
|
string fakeToken = "FAKE_TOKEN_FOR_DEVELOPMENT";
|
||
|
|
return Task.FromResult<string?>(fakeToken);
|
||
|
|
}
|
||
|
|
|
||
|
|
public Task<List<CatalogoDto>?> GetCatalogoCompletoAsync(string authToken)
|
||
|
|
{
|
||
|
|
_logger.LogInformation("Simulando obtención de Catálogo Completo...");
|
||
|
|
|
||
|
|
var catalogo = new List<CatalogoDto>
|
||
|
|
{
|
||
|
|
new() // Simulamos el catálogo para la categoría de Diputados (ID 5)
|
||
|
|
{
|
||
|
|
Version = 1,
|
||
|
|
CategoriaId = 5,
|
||
|
|
Ambitos =
|
||
|
|
[
|
||
|
|
new() { NivelId = 10, Nombre = "BUENOS AIRES", CodigoAmbitos = new() { DistritoId = "02" } },
|
||
|
|
new() { NivelId = 5, Nombre = "LA PLATA", CodigoAmbitos = new() { DistritoId = "02", SeccionId = "0001", MunicipioId = "056" } },
|
||
|
|
new() { NivelId = 5, Nombre = "MAR DEL PLATA", CodigoAmbitos = new() { DistritoId = "02", SeccionId = "0005", MunicipioId = "035" } }
|
||
|
|
],
|
||
|
|
Niveles =
|
||
|
|
[
|
||
|
|
new() { NivelId = 10, Nombre = "Provincia" },
|
||
|
|
new() { NivelId = 5, Nombre = "Municipio" }
|
||
|
|
]
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
return Task.FromResult<List<CatalogoDto>?>(catalogo);
|
||
|
|
}
|
||
|
|
|
||
|
|
public Task<List<AgrupacionDto>?> GetAgrupacionesAsync(string authToken, string distritoId, int categoriaId)
|
||
|
|
{
|
||
|
|
_logger.LogInformation("Simulando obtención de Agrupaciones Políticas para el distrito {Distrito} y categoría {Categoria}...", distritoId, categoriaId);
|
||
|
|
|
||
|
|
var agrupaciones = new List<AgrupacionDto>
|
||
|
|
{
|
||
|
|
new() { IdAgrupacion = "018", IdAgrupacionTelegrama = "131", NombreAgrupacion = "FRENTE DE AVANZADA" },
|
||
|
|
new() { IdAgrupacion = "025", IdAgrupacionTelegrama = "132", NombreAgrupacion = "ALIANZA POR EL FUTURO" },
|
||
|
|
new() { IdAgrupacion = "031", IdAgrupacionTelegrama = "133", NombreAgrupacion = "UNION POPULAR" },
|
||
|
|
new() { IdAgrupacion = "045", IdAgrupacionTelegrama = "134", NombreAgrupacion = "PARTIDO VECINALISTA" }
|
||
|
|
};
|
||
|
|
|
||
|
|
return Task.FromResult<List<AgrupacionDto>?>(agrupaciones);
|
||
|
|
}
|
||
|
|
|
||
|
|
public Task<ResultadosDto?> GetResultadosAsync(string authToken, string distritoId, string seccionId, string municipioId)
|
||
|
|
{
|
||
|
|
_logger.LogInformation("Simulando obtención de Resultados para el municipio {MunicipioId}...", municipioId);
|
||
|
|
|
||
|
|
// YA NO FILTRAMOS POR ID. DEVOLVEMOS DATOS SIMULADOS PARA CUALQUIER MUNICIPIO.
|
||
|
|
|
||
|
|
var random = new Random();
|
||
|
|
var resultados = new ResultadosDto
|
||
|
|
{
|
||
|
|
FechaTotalizacion = DateTime.Now.ToString("o"),
|
||
|
|
EstadoRecuento = new EstadoRecuentoDto
|
||
|
|
{
|
||
|
|
MesasEsperadas = random.Next(100, 2000), // Hacemos que varíe
|
||
|
|
MesasTotalizadas = random.Next(50, 100),
|
||
|
|
CantidadElectores = random.Next(50000, 600000),
|
||
|
|
ParticipacionPorcentaje = random.Next(60, 85) + (decimal)random.NextDouble()
|
||
|
|
},
|
||
|
|
ValoresTotalizadosPositivos =
|
||
|
|
[
|
||
|
|
// Usamos los IDs reales de nuestro catálogo de agrupaciones falsas
|
||
|
|
new() { IdAgrupacion = "018", NombreAgrupacion = "FRENTE DE AVANZADA", Votos = random.Next(10000, 20000) },
|
||
|
|
new() { IdAgrupacion = "025", NombreAgrupacion = "ALIANZA POR EL FUTURO", Votos = random.Next(15000, 25000) },
|
||
|
|
new() { IdAgrupacion = "031", NombreAgrupacion = "UNION POPULAR", Votos = random.Next(5000, 10000) },
|
||
|
|
new() { IdAgrupacion = "045", NombreAgrupacion = "PARTIDO VECINALISTA", Votos = random.Next(2000, 5000) }
|
||
|
|
],
|
||
|
|
ValoresTotalizadosOtros = new VotosOtrosDto
|
||
|
|
{
|
||
|
|
VotosEnBlanco = random.Next(1000, 2000),
|
||
|
|
VotosNulos = random.Next(500, 1000),
|
||
|
|
VotosRecurridos = random.Next(20, 50)
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
return Task.FromResult<ResultadosDto?>(resultados);
|
||
|
|
}
|
||
|
|
}
|