Test Docker
This commit is contained in:
		| @@ -9,6 +9,12 @@ | ||||
|     <PackageReference Include="Microsoft.Extensions.Http" Version="9.0.8" /> | ||||
|   </ItemGroup> | ||||
|  | ||||
|   <ItemGroup> | ||||
|     <None Update="buenos-aires-municipios.geojson"> | ||||
|       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||||
|     </None> | ||||
|   </ItemGroup> | ||||
|  | ||||
|   <PropertyGroup> | ||||
|     <TargetFramework>net9.0</TargetFramework> | ||||
|     <ImplicitUsings>enable</ImplicitUsings> | ||||
|   | ||||
| @@ -4,6 +4,7 @@ using System.Collections.Generic; | ||||
| using System.Net.Http; | ||||
| using System.Net.Http.Json; | ||||
| using System.Threading.Tasks; | ||||
| using static Elecciones.Core.DTOs.BancaDto; | ||||
|  | ||||
| namespace Elecciones.Infrastructure.Services; | ||||
|  | ||||
| @@ -18,6 +19,8 @@ public class ElectoralApiService : IElectoralApiService | ||||
|         _configuration = configuration; | ||||
|     } | ||||
|  | ||||
|     // --- MÉTODOS DE LA INTERFAZ --- | ||||
|  | ||||
|     public async Task<string?> GetAuthTokenAsync() | ||||
|     { | ||||
|         var client = _httpClientFactory.CreateClient("ElectoralApiClient"); | ||||
| @@ -67,20 +70,84 @@ public class ElectoralApiService : IElectoralApiService | ||||
|     public async Task<ResultadosDto?> GetResultadosAsync(string authToken, string distritoId, string seccionId, string municipioId) | ||||
|     { | ||||
|         var client = _httpClientFactory.CreateClient("ElectoralApiClient"); | ||||
|  | ||||
|         // Construimos la URL con todos los parámetros requeridos. Usamos categoría 5 (Diputados) como ejemplo. | ||||
|         var requestUri = $"/api/resultados/getResultados?distritold={distritoId}&seccionld={seccionId}&municipiold={municipioId}&categoriald=5"; | ||||
|  | ||||
|         var request = new HttpRequestMessage(HttpMethod.Get, requestUri); | ||||
|         request.Headers.Add("Authorization", $"Bearer {authToken}"); | ||||
|  | ||||
|         var response = await client.SendAsync(request); | ||||
|         return response.IsSuccessStatusCode | ||||
|             ? await response.Content.ReadFromJsonAsync<ResultadosDto>() | ||||
|             : null; | ||||
|     } | ||||
|  | ||||
|         if (!response.IsSuccessStatusCode) | ||||
|         { | ||||
|             return null; | ||||
|         } | ||||
|     public async Task<RepartoBancasDto?> GetBancasAsync(string authToken, string distritoId, string seccionId) | ||||
|     { | ||||
|         var client = _httpClientFactory.CreateClient("ElectoralApiClient"); | ||||
|         var requestUri = $"/api/resultados/getBancas?distritold={distritoId}&seccionld={seccionId}&categoriald=5"; | ||||
|         var request = new HttpRequestMessage(HttpMethod.Get, requestUri); | ||||
|         request.Headers.Add("Authorization", $"Bearer {authToken}"); | ||||
|  | ||||
|         return await response.Content.ReadFromJsonAsync<ResultadosDto>(); | ||||
|         var response = await client.SendAsync(request); | ||||
|         return response.IsSuccessStatusCode | ||||
|             ? await response.Content.ReadFromJsonAsync<RepartoBancasDto>() | ||||
|             : null; | ||||
|     } | ||||
|  | ||||
|     public async Task<List<string[]>?> GetTelegramasTotalizadosAsync(string authToken, string distritoId, string seccionId) | ||||
|     { | ||||
|         var client = _httpClientFactory.CreateClient("ElectoralApiClient"); | ||||
|         var requestUri = $"/api/resultados/getTelegramasTotalizados?distritold={distritoId}&seccionld={seccionId}"; | ||||
|         var request = new HttpRequestMessage(HttpMethod.Get, requestUri); | ||||
|         request.Headers.Add("Authorization", $"Bearer {authToken}"); | ||||
|  | ||||
|         var response = await client.SendAsync(request); | ||||
|         return response.IsSuccessStatusCode | ||||
|             ? await response.Content.ReadFromJsonAsync<List<string[]>>() | ||||
|             : null; | ||||
|     } | ||||
|  | ||||
|     public async Task<TelegramaFileDto?> GetTelegramaFileAsync(string authToken, string mesaId) | ||||
|     { | ||||
|         var client = _httpClientFactory.CreateClient("ElectoralApiClient"); | ||||
|         var requestUri = $"/api/resultados/getFile?mesald={mesaId}"; | ||||
|         var request = new HttpRequestMessage(HttpMethod.Get, requestUri); | ||||
|         request.Headers.Add("Authorization", $"Bearer {authToken}"); | ||||
|  | ||||
|         var response = await client.SendAsync(request); | ||||
|         return response.IsSuccessStatusCode | ||||
|             ? await response.Content.ReadFromJsonAsync<TelegramaFileDto>() | ||||
|             : null; | ||||
|     } | ||||
|  | ||||
|     public async Task<ResumenDto?> GetResumenAsync(string authToken, string distritoId) | ||||
|     { | ||||
|         var client = _httpClientFactory.CreateClient("ElectoralApiClient"); | ||||
|         var requestUri = $"/api/resultados/getResumen?distritold={distritoId}"; | ||||
|         var request = new HttpRequestMessage(HttpMethod.Get, requestUri); | ||||
|         request.Headers.Add("Authorization", $"Bearer {authToken}"); | ||||
|         var response = await client.SendAsync(request); | ||||
|         return response.IsSuccessStatusCode ? await response.Content.ReadFromJsonAsync<ResumenDto>() : null; | ||||
|     } | ||||
|  | ||||
|     public async Task<EstadoRecuentoGeneralDto?> GetEstadoRecuentoGeneralAsync(string authToken, string distritoId) | ||||
|     { | ||||
|         var client = _httpClientFactory.CreateClient("ElectoralApiClient"); | ||||
|         var requestUri = $"/api/estados/estadoRecuento?distritold={distritoId}"; | ||||
|         var request = new HttpRequestMessage(HttpMethod.Get, requestUri); | ||||
|         request.Headers.Add("Authorization", $"Bearer {authToken}"); | ||||
|         var response = await client.SendAsync(request); | ||||
|         return response.IsSuccessStatusCode ? await response.Content.ReadFromJsonAsync<EstadoRecuentoGeneralDto>() : null; | ||||
|     } | ||||
|  | ||||
|     public async Task<List<CategoriaDto>?> GetCategoriasAsync(string authToken) | ||||
|     { | ||||
|         var client = _httpClientFactory.CreateClient("ElectoralApiClient"); | ||||
|         var request = new HttpRequestMessage(HttpMethod.Get, "/api/catalogo/getCategorias"); | ||||
|         request.Headers.Add("Authorization", $"Bearer {authToken}"); | ||||
|         var response = await client.SendAsync(request); | ||||
|         return response.IsSuccessStatusCode | ||||
|             ? await response.Content.ReadFromJsonAsync<List<CategoriaDto>>() | ||||
|             : null; | ||||
|     } | ||||
| } | ||||
| @@ -1,101 +1,145 @@ | ||||
| // src/Elecciones.Infrastructure/Services/FakeElectoralApiService.cs | ||||
| using Elecciones.Core.DTOs; | ||||
| using Microsoft.Extensions.Logging; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.IO; | ||||
| using System.Linq; | ||||
| using System.Text.Json; | ||||
| using System.Threading.Tasks; | ||||
| using static Elecciones.Core.DTOs.BancaDto; | ||||
|  | ||||
| namespace Elecciones.Infrastructure.Services; | ||||
|  | ||||
| public class FakeElectoralApiService : IElectoralApiService | ||||
| { | ||||
|     private readonly ILogger<FakeElectoralApiService> _logger; | ||||
|     private List<AmbitoDto>? _fakeAmbitosCache = null; | ||||
|     private readonly Random _random = new Random(); | ||||
|  | ||||
|     public FakeElectoralApiService(ILogger<FakeElectoralApiService> logger) | ||||
|     { | ||||
|         _logger = logger; | ||||
|     } | ||||
|  | ||||
|     private void GenerateFakeAmbitosFromGeoJson() | ||||
|     { | ||||
|         if (_fakeAmbitosCache != null) return; | ||||
|         _logger.LogWarning("--- USANDO SERVICIO FALSO (FAKE) ---"); | ||||
|         _logger.LogInformation("Generando datos de prueba de ámbitos desde el archivo GeoJSON..."); | ||||
|  | ||||
|         var geoJsonPath = Path.Combine(AppContext.BaseDirectory, "buenos-aires-municipios.geojson"); | ||||
|         if (!File.Exists(geoJsonPath)) | ||||
|         { | ||||
|             _logger.LogError("No se encontró el archivo buenos-aires-municipios.geojson."); | ||||
|             _fakeAmbitosCache = new List<AmbitoDto>(); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         var geoJsonString = File.ReadAllText(geoJsonPath); | ||||
|         using var document = JsonDocument.Parse(geoJsonString); | ||||
|         var features = document.RootElement.GetProperty("features").EnumerateArray().ToList(); | ||||
|  | ||||
|         var ambitos = new List<AmbitoDto>(); | ||||
|         ambitos.Add(new AmbitoDto { NivelId = 10, Nombre = "BUENOS AIRES", CodigoAmbitos = new CodigoAmbitoDto { DistritoId = "02" } }); | ||||
|         var secciones = new List<AmbitoDto> { | ||||
|             new() { NivelId = 4, Nombre = "PRIMERA SECCION ELECTORAL", CodigoAmbitos = new CodigoAmbitoDto { DistritoId = "02", SeccionId = "0001" } }, | ||||
|             new() { NivelId = 4, Nombre = "SEGUNDA SECCION ELECTORAL", CodigoAmbitos = new CodigoAmbitoDto { DistritoId = "02", SeccionId = "0002" } }, | ||||
|             new() { NivelId = 4, Nombre = "TERCERA SECCION ELECTORAL", CodigoAmbitos = new CodigoAmbitoDto { DistritoId = "02", SeccionId = "0003" } } | ||||
|         }; | ||||
|         ambitos.AddRange(secciones); | ||||
|  | ||||
|         for (int i = 0; i < features.Count; i++) | ||||
|         { | ||||
|             var feature = features[i]; | ||||
|             var properties = feature.GetProperty("properties"); | ||||
|             var seccionAsignada = secciones[i % secciones.Count]; | ||||
|             ambitos.Add(new AmbitoDto { NivelId = 5, Nombre = properties.GetProperty("nam").GetString() ?? "Sin Nombre", CodigoAmbitos = new CodigoAmbitoDto { MunicipioId = properties.GetProperty("cca").GetString(), DistritoId = "02", SeccionId = seccionAsignada.CodigoAmbitos.SeccionId } }); | ||||
|         } | ||||
|         _fakeAmbitosCache = ambitos; | ||||
|         _logger.LogInformation("Se generaron {count} ámbitos de prueba (Provincia, Secciones y Municipios).", _fakeAmbitosCache.Count); | ||||
|     } | ||||
|  | ||||
|     public Task<ResumenDto?> GetResumenAsync(string authToken, string distritoId) | ||||
|     { | ||||
|         _logger.LogInformation("Simulando obtención de Resumen para distrito {DistritoId}...", distritoId); | ||||
|         var resumen = new ResumenDto | ||||
|         { | ||||
|             ValoresTotalizadosPositivos = new List<ResumenPositivoDto> | ||||
|         { | ||||
|             new() { IdAgrupacion = "025", Votos = 2500000 + _random.Next(1000), VotosPorcentaje = 45.12m }, | ||||
|             new() { IdAgrupacion = "018", Votos = 2100000 + _random.Next(1000), VotosPorcentaje = 38.78m }, | ||||
|             new() { IdAgrupacion = "031", Votos = 800000 + _random.Next(1000), VotosPorcentaje = 14.10m } | ||||
|         } | ||||
|         }; | ||||
|         return Task.FromResult<ResumenDto?>(resumen); | ||||
|     } | ||||
|  | ||||
|     public Task<EstadoRecuentoGeneralDto?> GetEstadoRecuentoGeneralAsync(string authToken, string distritoId) | ||||
|     { | ||||
|         _logger.LogInformation("Simulando obtención de Estado de Recuento General para distrito {DistritoId}...", distritoId); | ||||
|         var estado = new EstadoRecuentoGeneralDto | ||||
|         { | ||||
|             MesasEsperadas = 38000, | ||||
|             MesasTotalizadas = _random.Next(28000, 37000), | ||||
|             MesasTotalizadasPorcentaje = 95.5m, | ||||
|             CantidadElectores = 12500000, | ||||
|             CantidadVotantes = 9375000, | ||||
|             ParticipacionPorcentaje = 75.0m | ||||
|         }; | ||||
|         return Task.FromResult<EstadoRecuentoGeneralDto?>(estado); | ||||
|     } | ||||
|  | ||||
|     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); | ||||
|         return Task.FromResult<string?>("FAKE_TOKEN_FOR_DEVELOPMENT"); | ||||
|     } | ||||
|  | ||||
|     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" } | ||||
|                 ] | ||||
|             } | ||||
|         }; | ||||
|  | ||||
|         GenerateFakeAmbitosFromGeoJson(); | ||||
|         var catalogo = new List<CatalogoDto> { new() { Version = 1, CategoriaId = 5, Ambitos = _fakeAmbitosCache ?? new List<AmbitoDto>(), Niveles = new List<NivelDto> { new() { NivelId = 10, Nombre = "Provincia" }, new() { NivelId = 4, Nombre = "Seccion" }, 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" } | ||||
|     }; | ||||
|  | ||||
|         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) | ||||
|             } | ||||
|         }; | ||||
|  | ||||
|         var resultados = new ResultadosDto { FechaTotalizacion = DateTime.Now.ToString("o"), EstadoRecuento = new EstadoRecuentoDto { MesasEsperadas = _random.Next(100, 2000), MesasTotalizadas = _random.Next(50, 100), CantidadElectores = _random.Next(50000, 600000), ParticipacionPorcentaje = _random.Next(60, 85) + (decimal)_random.NextDouble() }, ValoresTotalizadosPositivos = new List<VotosPositivosDto> { new() { IdAgrupacion = "018", Votos = _random.Next(10000, 20000) }, new() { IdAgrupacion = "025", Votos = _random.Next(15000, 25000) }, new() { IdAgrupacion = "031", Votos = _random.Next(5000, 10000) }, new() { IdAgrupacion = "045", 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); | ||||
|     } | ||||
|  | ||||
|     public Task<RepartoBancasDto?> GetBancasAsync(string authToken, string distritoId, string seccionId) | ||||
|     { | ||||
|         var reparto = new RepartoBancasDto { RepartoBancas = new List<BancaDto> { new() { IdAgrupacion = "025", NroBancas = _random.Next(5, 9) }, new() { IdAgrupacion = "018", NroBancas = _random.Next(3, 7) } } }; | ||||
|         return Task.FromResult<RepartoBancasDto?>(reparto); | ||||
|     } | ||||
|  | ||||
|     public Task<List<string[]>?> GetTelegramasTotalizadosAsync(string authToken, string distritoId, string seccionId) | ||||
|     { | ||||
|         var lista = new List<string[]> { new[] { $"02{seccionId}0001M" }, new[] { $"02{seccionId}0002M" } }; | ||||
|         return Task.FromResult<List<string[]>?>(lista); | ||||
|     } | ||||
|  | ||||
|     public Task<TelegramaFileDto?> GetTelegramaFileAsync(string authToken, string mesaId) | ||||
|     { | ||||
|         var file = new TelegramaFileDto { NombreArchivo = mesaId, Imagen = "FAKE_BASE64_PDF_CONTENT", FechaEscaneo = DateTime.UtcNow.AddMinutes(-10).ToString("o"), FechaTotalizacion = DateTime.UtcNow.ToString("o") }; | ||||
|         return Task.FromResult<TelegramaFileDto?>(file); | ||||
|     } | ||||
|  | ||||
|     public Task<List<CategoriaDto>?> GetCategoriasAsync(string authToken) | ||||
|     { | ||||
|         _logger.LogInformation("Simulando obtención de Categorías Electorales..."); | ||||
|         var categorias = new List<CategoriaDto> | ||||
|     { | ||||
|         new() { CategoriaId = 5, Nombre = "DIPUTADOS NACIONALES", Orden = 1 }, | ||||
|         new() { CategoriaId = 6, Nombre = "SENADORES NACIONALES", Orden = 2 } | ||||
|     }; | ||||
|         return Task.FromResult<List<CategoriaDto>?>(categorias); | ||||
|     } | ||||
| } | ||||
| @@ -1,12 +1,24 @@ | ||||
| // src/Elecciones.Infrastructure/Services/IElectoralApiService.cs | ||||
| using Elecciones.Core.DTOs; | ||||
| using System.Collections.Generic; | ||||
| using System.Threading.Tasks; | ||||
| using static Elecciones.Core.DTOs.BancaDto; | ||||
|  | ||||
| namespace Elecciones.Infrastructure.Services; | ||||
|  | ||||
| public interface IElectoralApiService | ||||
| { | ||||
|     Task<string?> GetAuthTokenAsync(); | ||||
|  | ||||
|     // Métodos para catálogos | ||||
|     Task<List<CatalogoDto>?> GetCatalogoCompletoAsync(string authToken); | ||||
|     Task<List<AgrupacionDto>?> GetAgrupacionesAsync(string authToken, string distritoId, int categoriaId); | ||||
|  | ||||
|     // Métodos para resultados y datos dinámicos | ||||
|     Task<ResultadosDto?> GetResultadosAsync(string authToken, string distritoId, string seccionId, string municipioId); | ||||
|     Task<RepartoBancasDto?> GetBancasAsync(string authToken, string distritoId, string seccionId); | ||||
|     Task<List<string[]>?> GetTelegramasTotalizadosAsync(string authToken, string distritoId, string seccionId); | ||||
|     Task<TelegramaFileDto?> GetTelegramaFileAsync(string authToken, string mesaId); | ||||
|     Task<ResumenDto?> GetResumenAsync(string authToken, string distritoId); | ||||
|     Task<EstadoRecuentoGeneralDto?> GetEstadoRecuentoGeneralAsync(string authToken, string distritoId); | ||||
|     Task<List<CategoriaDto>?> GetCategoriasAsync(string authToken); | ||||
| } | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -0,0 +1,285 @@ | ||||
| { | ||||
|   "runtimeTarget": { | ||||
|     "name": ".NETCoreApp,Version=v9.0", | ||||
|     "signature": "" | ||||
|   }, | ||||
|   "compilationOptions": {}, | ||||
|   "targets": { | ||||
|     ".NETCoreApp,Version=v9.0": { | ||||
|       "Elecciones.Infrastructure/1.0.0": { | ||||
|         "dependencies": { | ||||
|           "Elecciones.Core": "1.0.0", | ||||
|           "Microsoft.Extensions.Configuration.Abstractions": "9.0.8", | ||||
|           "Microsoft.Extensions.Http": "9.0.8" | ||||
|         }, | ||||
|         "runtime": { | ||||
|           "Elecciones.Infrastructure.dll": {} | ||||
|         } | ||||
|       }, | ||||
|       "Microsoft.Extensions.Configuration/9.0.8": { | ||||
|         "dependencies": { | ||||
|           "Microsoft.Extensions.Configuration.Abstractions": "9.0.8", | ||||
|           "Microsoft.Extensions.Primitives": "9.0.8" | ||||
|         }, | ||||
|         "runtime": { | ||||
|           "lib/net9.0/Microsoft.Extensions.Configuration.dll": { | ||||
|             "assemblyVersion": "9.0.0.0", | ||||
|             "fileVersion": "9.0.825.36511" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "Microsoft.Extensions.Configuration.Abstractions/9.0.8": { | ||||
|         "dependencies": { | ||||
|           "Microsoft.Extensions.Primitives": "9.0.8" | ||||
|         }, | ||||
|         "runtime": { | ||||
|           "lib/net9.0/Microsoft.Extensions.Configuration.Abstractions.dll": { | ||||
|             "assemblyVersion": "9.0.0.0", | ||||
|             "fileVersion": "9.0.825.36511" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "Microsoft.Extensions.Configuration.Binder/9.0.8": { | ||||
|         "dependencies": { | ||||
|           "Microsoft.Extensions.Configuration.Abstractions": "9.0.8" | ||||
|         }, | ||||
|         "runtime": { | ||||
|           "lib/net9.0/Microsoft.Extensions.Configuration.Binder.dll": { | ||||
|             "assemblyVersion": "9.0.0.0", | ||||
|             "fileVersion": "9.0.825.36511" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "Microsoft.Extensions.DependencyInjection/9.0.8": { | ||||
|         "dependencies": { | ||||
|           "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.8" | ||||
|         }, | ||||
|         "runtime": { | ||||
|           "lib/net9.0/Microsoft.Extensions.DependencyInjection.dll": { | ||||
|             "assemblyVersion": "9.0.0.0", | ||||
|             "fileVersion": "9.0.825.36511" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "Microsoft.Extensions.DependencyInjection.Abstractions/9.0.8": { | ||||
|         "runtime": { | ||||
|           "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { | ||||
|             "assemblyVersion": "9.0.0.0", | ||||
|             "fileVersion": "9.0.825.36511" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "Microsoft.Extensions.Diagnostics/9.0.8": { | ||||
|         "dependencies": { | ||||
|           "Microsoft.Extensions.Configuration": "9.0.8", | ||||
|           "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.8", | ||||
|           "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.8" | ||||
|         }, | ||||
|         "runtime": { | ||||
|           "lib/net9.0/Microsoft.Extensions.Diagnostics.dll": { | ||||
|             "assemblyVersion": "9.0.0.0", | ||||
|             "fileVersion": "9.0.825.36511" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "Microsoft.Extensions.Diagnostics.Abstractions/9.0.8": { | ||||
|         "dependencies": { | ||||
|           "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.8", | ||||
|           "Microsoft.Extensions.Options": "9.0.8" | ||||
|         }, | ||||
|         "runtime": { | ||||
|           "lib/net9.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": { | ||||
|             "assemblyVersion": "9.0.0.0", | ||||
|             "fileVersion": "9.0.825.36511" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "Microsoft.Extensions.Http/9.0.8": { | ||||
|         "dependencies": { | ||||
|           "Microsoft.Extensions.Configuration.Abstractions": "9.0.8", | ||||
|           "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.8", | ||||
|           "Microsoft.Extensions.Diagnostics": "9.0.8", | ||||
|           "Microsoft.Extensions.Logging": "9.0.8", | ||||
|           "Microsoft.Extensions.Logging.Abstractions": "9.0.8", | ||||
|           "Microsoft.Extensions.Options": "9.0.8" | ||||
|         }, | ||||
|         "runtime": { | ||||
|           "lib/net9.0/Microsoft.Extensions.Http.dll": { | ||||
|             "assemblyVersion": "9.0.0.0", | ||||
|             "fileVersion": "9.0.825.36511" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "Microsoft.Extensions.Logging/9.0.8": { | ||||
|         "dependencies": { | ||||
|           "Microsoft.Extensions.DependencyInjection": "9.0.8", | ||||
|           "Microsoft.Extensions.Logging.Abstractions": "9.0.8", | ||||
|           "Microsoft.Extensions.Options": "9.0.8" | ||||
|         }, | ||||
|         "runtime": { | ||||
|           "lib/net9.0/Microsoft.Extensions.Logging.dll": { | ||||
|             "assemblyVersion": "9.0.0.0", | ||||
|             "fileVersion": "9.0.825.36511" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "Microsoft.Extensions.Logging.Abstractions/9.0.8": { | ||||
|         "dependencies": { | ||||
|           "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.8" | ||||
|         }, | ||||
|         "runtime": { | ||||
|           "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll": { | ||||
|             "assemblyVersion": "9.0.0.0", | ||||
|             "fileVersion": "9.0.825.36511" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "Microsoft.Extensions.Options/9.0.8": { | ||||
|         "dependencies": { | ||||
|           "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.8", | ||||
|           "Microsoft.Extensions.Primitives": "9.0.8" | ||||
|         }, | ||||
|         "runtime": { | ||||
|           "lib/net9.0/Microsoft.Extensions.Options.dll": { | ||||
|             "assemblyVersion": "9.0.0.0", | ||||
|             "fileVersion": "9.0.825.36511" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "Microsoft.Extensions.Options.ConfigurationExtensions/9.0.8": { | ||||
|         "dependencies": { | ||||
|           "Microsoft.Extensions.Configuration.Abstractions": "9.0.8", | ||||
|           "Microsoft.Extensions.Configuration.Binder": "9.0.8", | ||||
|           "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.8", | ||||
|           "Microsoft.Extensions.Options": "9.0.8", | ||||
|           "Microsoft.Extensions.Primitives": "9.0.8" | ||||
|         }, | ||||
|         "runtime": { | ||||
|           "lib/net9.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": { | ||||
|             "assemblyVersion": "9.0.0.0", | ||||
|             "fileVersion": "9.0.825.36511" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "Microsoft.Extensions.Primitives/9.0.8": { | ||||
|         "runtime": { | ||||
|           "lib/net9.0/Microsoft.Extensions.Primitives.dll": { | ||||
|             "assemblyVersion": "9.0.0.0", | ||||
|             "fileVersion": "9.0.825.36511" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "Elecciones.Core/1.0.0": { | ||||
|         "runtime": { | ||||
|           "Elecciones.Core.dll": { | ||||
|             "assemblyVersion": "1.0.0.0", | ||||
|             "fileVersion": "1.0.0.0" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   "libraries": { | ||||
|     "Elecciones.Infrastructure/1.0.0": { | ||||
|       "type": "project", | ||||
|       "serviceable": false, | ||||
|       "sha512": "" | ||||
|     }, | ||||
|     "Microsoft.Extensions.Configuration/9.0.8": { | ||||
|       "type": "package", | ||||
|       "serviceable": true, | ||||
|       "sha512": "sha512-6m+8Xgmf8UWL0p/oGqBM+0KbHE5/ePXbV1hKXgC59zEv0aa0DW5oiiyxDbK5kH5j4gIvyD5uWL0+HadKBJngvQ==", | ||||
|       "path": "microsoft.extensions.configuration/9.0.8", | ||||
|       "hashPath": "microsoft.extensions.configuration.9.0.8.nupkg.sha512" | ||||
|     }, | ||||
|     "Microsoft.Extensions.Configuration.Abstractions/9.0.8": { | ||||
|       "type": "package", | ||||
|       "serviceable": true, | ||||
|       "sha512": "sha512-yNou2KM35RvzOh4vUFtl2l33rWPvOCoba+nzEDJ+BgD8aOL/jew4WPCibQvntRfOJ2pJU8ARygSMD+pdjvDHuA==", | ||||
|       "path": "microsoft.extensions.configuration.abstractions/9.0.8", | ||||
|       "hashPath": "microsoft.extensions.configuration.abstractions.9.0.8.nupkg.sha512" | ||||
|     }, | ||||
|     "Microsoft.Extensions.Configuration.Binder/9.0.8": { | ||||
|       "type": "package", | ||||
|       "serviceable": true, | ||||
|       "sha512": "sha512-0vK9DnYrYChdiH3yRZWkkp4x4LbrfkWEdBc5HOsQ8t/0CLOWKXKkkhOE8A1shlex0hGydbGrhObeypxz/QTm+w==", | ||||
|       "path": "microsoft.extensions.configuration.binder/9.0.8", | ||||
|       "hashPath": "microsoft.extensions.configuration.binder.9.0.8.nupkg.sha512" | ||||
|     }, | ||||
|     "Microsoft.Extensions.DependencyInjection/9.0.8": { | ||||
|       "type": "package", | ||||
|       "serviceable": true, | ||||
|       "sha512": "sha512-JJjI2Fa+QtZcUyuNjbKn04OjIUX5IgFGFu/Xc+qvzh1rXdZHLcnqqVXhR4093bGirTwacRlHiVg1XYI9xum6QQ==", | ||||
|       "path": "microsoft.extensions.dependencyinjection/9.0.8", | ||||
|       "hashPath": "microsoft.extensions.dependencyinjection.9.0.8.nupkg.sha512" | ||||
|     }, | ||||
|     "Microsoft.Extensions.DependencyInjection.Abstractions/9.0.8": { | ||||
|       "type": "package", | ||||
|       "serviceable": true, | ||||
|       "sha512": "sha512-xY3lTjj4+ZYmiKIkyWitddrp1uL5uYiweQjqo4BKBw01ZC4HhcfgLghDpPZcUlppgWAFqFy9SgkiYWOMx365pw==", | ||||
|       "path": "microsoft.extensions.dependencyinjection.abstractions/9.0.8", | ||||
|       "hashPath": "microsoft.extensions.dependencyinjection.abstractions.9.0.8.nupkg.sha512" | ||||
|     }, | ||||
|     "Microsoft.Extensions.Diagnostics/9.0.8": { | ||||
|       "type": "package", | ||||
|       "serviceable": true, | ||||
|       "sha512": "sha512-BKkLCFXzJvNmdngeYBf72VXoZqTJSb1orvjdzDLaGobicoGFBPW8ug2ru1nnEewMEwJzMgnsjHQY8EaKWmVhKg==", | ||||
|       "path": "microsoft.extensions.diagnostics/9.0.8", | ||||
|       "hashPath": "microsoft.extensions.diagnostics.9.0.8.nupkg.sha512" | ||||
|     }, | ||||
|     "Microsoft.Extensions.Diagnostics.Abstractions/9.0.8": { | ||||
|       "type": "package", | ||||
|       "serviceable": true, | ||||
|       "sha512": "sha512-UDY7blv4DCyIJ/8CkNrQKLaAZFypXQavRZ2DWf/2zi1mxYYKKw2t8AOCBWxNntyPZHPGhtEmL3snFM98ADZqTw==", | ||||
|       "path": "microsoft.extensions.diagnostics.abstractions/9.0.8", | ||||
|       "hashPath": "microsoft.extensions.diagnostics.abstractions.9.0.8.nupkg.sha512" | ||||
|     }, | ||||
|     "Microsoft.Extensions.Http/9.0.8": { | ||||
|       "type": "package", | ||||
|       "serviceable": true, | ||||
|       "sha512": "sha512-jDj+4aDByk47oESlDDTtk6LWzlXlmoCsjCn6ihd+i9OntN885aPLszUII5+w0B/7wYSZcS3KdjqLAIhKLSiBXQ==", | ||||
|       "path": "microsoft.extensions.http/9.0.8", | ||||
|       "hashPath": "microsoft.extensions.http.9.0.8.nupkg.sha512" | ||||
|     }, | ||||
|     "Microsoft.Extensions.Logging/9.0.8": { | ||||
|       "type": "package", | ||||
|       "serviceable": true, | ||||
|       "sha512": "sha512-Z/7ze+0iheT7FJeZPqJKARYvyC2bmwu3whbm/48BJjdlGVvgDguoCqJIkI/67NkroTYobd5geai1WheNQvWrgA==", | ||||
|       "path": "microsoft.extensions.logging/9.0.8", | ||||
|       "hashPath": "microsoft.extensions.logging.9.0.8.nupkg.sha512" | ||||
|     }, | ||||
|     "Microsoft.Extensions.Logging.Abstractions/9.0.8": { | ||||
|       "type": "package", | ||||
|       "serviceable": true, | ||||
|       "sha512": "sha512-pYnAffJL7ARD/HCnnPvnFKSIHnTSmWz84WIlT9tPeQ4lHNiu0Az7N/8itihWvcF8sT+VVD5lq8V+ckMzu4SbOw==", | ||||
|       "path": "microsoft.extensions.logging.abstractions/9.0.8", | ||||
|       "hashPath": "microsoft.extensions.logging.abstractions.9.0.8.nupkg.sha512" | ||||
|     }, | ||||
|     "Microsoft.Extensions.Options/9.0.8": { | ||||
|       "type": "package", | ||||
|       "serviceable": true, | ||||
|       "sha512": "sha512-OmTaQ0v4gxGQkehpwWIqPoEiwsPuG/u4HUsbOFoWGx4DKET2AXzopnFe/fE608FIhzc/kcg2p8JdyMRCCUzitQ==", | ||||
|       "path": "microsoft.extensions.options/9.0.8", | ||||
|       "hashPath": "microsoft.extensions.options.9.0.8.nupkg.sha512" | ||||
|     }, | ||||
|     "Microsoft.Extensions.Options.ConfigurationExtensions/9.0.8": { | ||||
|       "type": "package", | ||||
|       "serviceable": true, | ||||
|       "sha512": "sha512-eW2s6n06x0w6w4nsX+SvpgsFYkl+Y0CttYAt6DKUXeqprX+hzNqjSfOh637fwNJBg7wRBrOIRHe49gKiTgJxzQ==", | ||||
|       "path": "microsoft.extensions.options.configurationextensions/9.0.8", | ||||
|       "hashPath": "microsoft.extensions.options.configurationextensions.9.0.8.nupkg.sha512" | ||||
|     }, | ||||
|     "Microsoft.Extensions.Primitives/9.0.8": { | ||||
|       "type": "package", | ||||
|       "serviceable": true, | ||||
|       "sha512": "sha512-tizSIOEsIgSNSSh+hKeUVPK7xmTIjR8s+mJWOu1KXV3htvNQiPMFRMO17OdI1y/4ZApdBVk49u/08QGC9yvLug==", | ||||
|       "path": "microsoft.extensions.primitives/9.0.8", | ||||
|       "hashPath": "microsoft.extensions.primitives.9.0.8.nupkg.sha512" | ||||
|     }, | ||||
|     "Elecciones.Core/1.0.0": { | ||||
|       "type": "project", | ||||
|       "serviceable": false, | ||||
|       "sha512": "" | ||||
|     } | ||||
|   } | ||||
| } | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												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+b90baadeedb870b5b1c9eeeb7022a0d211b61bec")] | ||||
| [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+39b1e9707275ed59ac4a7d32e26b951186a346bb")] | ||||
| [assembly: System.Reflection.AssemblyProductAttribute("Elecciones.Infrastructure")] | ||||
| [assembly: System.Reflection.AssemblyTitleAttribute("Elecciones.Infrastructure")] | ||||
| [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] | ||||
|   | ||||
| @@ -13,3 +13,4 @@ E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\obj\Debug\net9.0 | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\obj\Debug\net9.0\refint\Elecciones.Infrastructure.dll | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\obj\Debug\net9.0\Elecciones.Infrastructure.pdb | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\obj\Debug\net9.0\ref\Elecciones.Infrastructure.dll | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\bin\Debug\net9.0\buenos-aires-municipios.geojson | ||||
|   | ||||
| @@ -0,0 +1,4 @@ | ||||
| // <autogenerated /> | ||||
| using System; | ||||
| using System.Reflection; | ||||
| [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")] | ||||
| @@ -0,0 +1,22 @@ | ||||
| //------------------------------------------------------------------------------ | ||||
| // <auto-generated> | ||||
| //     This code was generated by a tool. | ||||
| // | ||||
| //     Changes to this file may cause incorrect behavior and will be lost if | ||||
| //     the code is regenerated. | ||||
| // </auto-generated> | ||||
| //------------------------------------------------------------------------------ | ||||
|  | ||||
| using System; | ||||
| using System.Reflection; | ||||
|  | ||||
| [assembly: System.Reflection.AssemblyCompanyAttribute("Elecciones.Infrastructure")] | ||||
| [assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] | ||||
| [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] | ||||
| [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+39b1e9707275ed59ac4a7d32e26b951186a346bb")] | ||||
| [assembly: System.Reflection.AssemblyProductAttribute("Elecciones.Infrastructure")] | ||||
| [assembly: System.Reflection.AssemblyTitleAttribute("Elecciones.Infrastructure")] | ||||
| [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] | ||||
|  | ||||
| // Generado por la clase WriteCodeFragment de MSBuild. | ||||
|  | ||||
| @@ -0,0 +1,15 @@ | ||||
| is_global = true | ||||
| build_property.TargetFramework = net9.0 | ||||
| build_property.TargetPlatformMinVersion =  | ||||
| build_property.UsingMicrosoftNETSdkWeb =  | ||||
| build_property.ProjectTypeGuids =  | ||||
| build_property.InvariantGlobalization =  | ||||
| build_property.PlatformNeutralAssembly =  | ||||
| build_property.EnforceExtendedAnalyzerRules =  | ||||
| build_property._SupportedPlatformList = Linux,macOS,Windows | ||||
| build_property.RootNamespace = Elecciones.Infrastructure | ||||
| build_property.ProjectDir = E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\ | ||||
| build_property.EnableComHosting =  | ||||
| build_property.EnableGeneratedComInterfaceComImportInterop =  | ||||
| build_property.EffectiveAnalysisLevelStyle = 9.0 | ||||
| build_property.EnableCodeStyleSeverity =  | ||||
| @@ -0,0 +1,8 @@ | ||||
| // <auto-generated/> | ||||
| global using global::System; | ||||
| global using global::System.Collections.Generic; | ||||
| global using global::System.IO; | ||||
| global using global::System.Linq; | ||||
| global using global::System.Net.Http; | ||||
| global using global::System.Threading; | ||||
| global using global::System.Threading.Tasks; | ||||
| @@ -0,0 +1,16 @@ | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\bin\Release\net9.0\buenos-aires-municipios.geojson | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\bin\Release\net9.0\Elecciones.Infrastructure.deps.json | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\bin\Release\net9.0\Elecciones.Infrastructure.dll | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\bin\Release\net9.0\Elecciones.Infrastructure.pdb | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\bin\Release\net9.0\Elecciones.Core.dll | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\bin\Release\net9.0\Elecciones.Core.pdb | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\obj\Release\net9.0\Elecciones.Infrastructure.csproj.AssemblyReference.cache | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\obj\Release\net9.0\Elecciones.Infrastructure.GeneratedMSBuildEditorConfig.editorconfig | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\obj\Release\net9.0\Elecciones.Infrastructure.AssemblyInfoInputs.cache | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\obj\Release\net9.0\Elecciones.Infrastructure.AssemblyInfo.cs | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\obj\Release\net9.0\Elecciones.Infrastructure.csproj.CoreCompileInputs.cache | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\obj\Release\net9.0\Eleccion.B7F7B2EF.Up2Date | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\obj\Release\net9.0\Elecciones.Infrastructure.dll | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\obj\Release\net9.0\refint\Elecciones.Infrastructure.dll | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\obj\Release\net9.0\Elecciones.Infrastructure.pdb | ||||
| E:\Elecciones-2025\Elecciones-Web\src\Elecciones.Infrastructure\obj\Release\net9.0\ref\Elecciones.Infrastructure.dll | ||||
		Reference in New Issue
	
	Block a user