39 lines
1.5 KiB
C#
39 lines
1.5 KiB
C#
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<PropiedadesDto>? 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});
|
|
|
|
}
|
|
}
|