using Entidades.Dto; using Modelo; using Microsoft.AspNetCore.Mvc; using Entidades.Admin; using AlquilaFacil.StrategyBusqueda; namespace AlquilaFacil.Controllers; [ApiController] public class BusquedaController: ControllerBase { [HttpGet("api/busqueda")] public IActionResult FiltroPropiedades([FromHeader(Name = "Auth")]string Auth, int cantidadHabitaciones = 0, int tipoPropiedad = 0, [FromQuery]string servicios = "") { if (String.IsNullOrEmpty(Auth)) return Unauthorized(); var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 3); if (validacion1 == false) return Unauthorized(); IQueryable? props = null; var clave = $"{(cantidadHabitaciones != 0 ? "1" : "0")}{(tipoPropiedad != 0 ? "1" : "0")}{(!string.IsNullOrEmpty(servicios) ? "1" : "0")}"; var gen = BusquedaContext.Singleton; var estrategia = gen.ObtenerEstrategia(clave); props = estrategia.Filtrar(servicios, cantidadHabitaciones, tipoPropiedad); return Ok(props); } [HttpGet("api/busqueda/cantPag")] public IActionResult GetCantPag([FromHeader(Name = "Auth")]string Auth, int cantidadHabitaciones = 0, int tipoPropiedad = 0, [FromQuery]string servicios = "") { if (String.IsNullOrEmpty(Auth)) return Unauthorized(); var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 3); if (validacion1 == false) return Unauthorized(); int ret = RepositorioPropiedades.Singleton.CuantasPaginasBusqueda(cantidadHabitaciones, servicios, tipoPropiedad, 1); return Ok(new { message = ret}); } }