Feat Widgets 1541
This commit is contained in:
		| @@ -187,22 +187,52 @@ public class AdminController : ControllerBase | ||||
|   [HttpPut("logos")] | ||||
|   public async Task<IActionResult> UpdateLogos([FromBody] List<LogoAgrupacionCategoria> logos) | ||||
|   { | ||||
|     // Lógica de "Upsert" | ||||
|     foreach (var logo in logos) | ||||
|     { | ||||
|       var logoExistente = await _dbContext.LogosAgrupacionesCategorias | ||||
|           .FirstOrDefaultAsync(l => l.AgrupacionPoliticaId == logo.AgrupacionPoliticaId && l.CategoriaId == logo.CategoriaId); | ||||
|           .FirstOrDefaultAsync(l => | ||||
|               l.AgrupacionPoliticaId == logo.AgrupacionPoliticaId && | ||||
|               l.CategoriaId == logo.CategoriaId && | ||||
|               l.AmbitoGeograficoId == logo.AmbitoGeograficoId); | ||||
|  | ||||
|       if (logoExistente != null) | ||||
|       { | ||||
|         // Si encontramos el registro exacto, solo actualizamos su URL. | ||||
|         logoExistente.LogoUrl = logo.LogoUrl; | ||||
|       } | ||||
|       else if (!string.IsNullOrEmpty(logo.LogoUrl)) | ||||
|       { | ||||
|         _dbContext.LogosAgrupacionesCategorias.Add(logo); | ||||
|         // Si no se encontró un registro exacto (es un override nuevo), | ||||
|         // lo añadimos a la base de datos. | ||||
|         _dbContext.LogosAgrupacionesCategorias.Add(new LogoAgrupacionCategoria | ||||
|         { | ||||
|           AgrupacionPoliticaId = logo.AgrupacionPoliticaId, | ||||
|           CategoriaId = logo.CategoriaId, | ||||
|           AmbitoGeograficoId = logo.AmbitoGeograficoId, | ||||
|           LogoUrl = logo.LogoUrl | ||||
|         }); | ||||
|       } | ||||
|     } | ||||
|     await _dbContext.SaveChangesAsync(); | ||||
|     return NoContent(); | ||||
|   } | ||||
|  | ||||
|   [HttpGet("catalogos/municipios")] | ||||
|   public async Task<IActionResult> GetMunicipiosForAdmin() | ||||
|   { | ||||
|     var municipios = await _dbContext.AmbitosGeograficos | ||||
|         .AsNoTracking() | ||||
|         .Where(a => a.NivelId == 30) // Nivel 30 = Municipio | ||||
|         .OrderBy(a => a.Nombre) | ||||
|         .Select(a => new | ||||
|         { | ||||
|           // Devolvemos el ID de la base de datos como un string, | ||||
|           // que es lo que el componente Select espera. | ||||
|           Id = a.Id.ToString(), | ||||
|           Nombre = a.Nombre | ||||
|         }) | ||||
|         .ToListAsync(); | ||||
|  | ||||
|     return Ok(municipios); | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user