diff --git a/Aspnet/Controllers/BusquedaControler.cs b/Aspnet/Controllers/BusquedaControler.cs index 3d9b29d..71a1aae 100644 --- a/Aspnet/Controllers/BusquedaControler.cs +++ b/Aspnet/Controllers/BusquedaControler.cs @@ -7,13 +7,32 @@ namespace AlquilaFacil.Controllers; [ApiController] public class BusquedaController: ControllerBase { [HttpGet("api/busqueda")] - public IActionResult FiltroPropiedades([FromHeader(Name = "Auth")]string Auth, int cantidadHabitaciones, int tipoPropiedad, [FromQuery]string servicios) { + 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(); - var propiedades = RepositorioPropiedades.Singleton.ObtenerPropiedesPorHabitaciones_Tipo_Servicios(); - - + IQueryable? props = null; + if (servicios == ""){ + //no hay parametros de busqueda + if (cantidadHabitaciones == 0 && tipoPropiedad == 0 ) props = RepositorioPropiedades.Singleton.ListarPropiedades(); + //Solo Habitaciones + if (cantidadHabitaciones != 0 && tipoPropiedad == 0) props = RepositorioPropiedades.Singleton.ObtenerPropiedesPorHabitaciones(cantidadHabitaciones); + //Solo TipoPropiedad + if (cantidadHabitaciones == 0 && tipoPropiedad != 0) props = RepositorioPropiedades.Singleton.ObtenerPropiedesPorTipo(tipoPropiedad); + //Habitaciones y TipoPropiedad + if (cantidadHabitaciones != 0 && tipoPropiedad != 0) props = RepositorioPropiedades.Singleton.ObtenerPropiedesPorHabitaciones_Tipo(cantidadHabitaciones, tipoPropiedad); + } else { + //Solo se filtra por servicios + if (cantidadHabitaciones == 0 && tipoPropiedad == 0 ) props = RepositorioPropiedades.Singleton.ObtenerPropiedesPorServicios(servicios); + //Servicios y habitaciones + if (cantidadHabitaciones != 0 && tipoPropiedad == 0) props = RepositorioPropiedades.Singleton.ObtenerPropiedesPorHabitaciones_Servicios(cantidadHabitaciones, servicios); + //Tipo y Servicios + if (cantidadHabitaciones == 0 && tipoPropiedad != 0) props = RepositorioPropiedades.Singleton.ObtenerPropiedesPorTipo_Servicios(tipoPropiedad, servicios); + // Todos los parametros + if (cantidadHabitaciones != 0 && tipoPropiedad != 0) props = RepositorioPropiedades.Singleton.ObtenerPropiedesPorHabitaciones_Tipo_Servicios(cantidadHabitaciones, tipoPropiedad, servicios); + } + + return Ok(props); } } diff --git a/Entidades/Dto/BusquedaDto.cs b/Entidades/Dto/BusquedaDto.cs index b49d910..bae05d0 100644 --- a/Entidades/Dto/BusquedaDto.cs +++ b/Entidades/Dto/BusquedaDto.cs @@ -1,3 +1,3 @@ namespace Entidades.Dto; -public record BusquedaDto(int Id, string Ubicacion, string Servicios); +public record BusquedaDto(int Id, string Ubicacion, string? Servicios = ""); diff --git a/Front/index.html b/Front/index.html index 135b7b8..a051eac 100644 --- a/Front/index.html +++ b/Front/index.html @@ -5,7 +5,11 @@ - + AlquilaFacil diff --git a/Front/public/toggle-left.svg b/Front/public/toggle-left.svg new file mode 100644 index 0000000..9f7d915 --- /dev/null +++ b/Front/public/toggle-left.svg @@ -0,0 +1,14 @@ + + + + + diff --git a/Front/public/toggle-right.svg b/Front/public/toggle-right.svg new file mode 100644 index 0000000..28a184b --- /dev/null +++ b/Front/public/toggle-right.svg @@ -0,0 +1,14 @@ + + + + + diff --git a/Front/src/Componentes/ListaAcciones.svelte b/Front/src/Componentes/ListaAcciones.svelte index f5c3287..c5674d3 100644 --- a/Front/src/Componentes/ListaAcciones.svelte +++ b/Front/src/Componentes/ListaAcciones.svelte @@ -2,6 +2,7 @@ import { onMount } from "svelte"; import { writable } from "svelte/store"; import { urlG } from "../stores/urlStore"; + import { links, navigate } from "svelte-routing"; type Permiso = { id: number; @@ -38,11 +39,14 @@ console.error(e); } } + function redirijir(path: string){ + navigate(path); + } -
+
{#each $permisos as item} - + {item.descripcion} {/each} diff --git a/Front/src/Componentes/login.svelte b/Front/src/Componentes/LoginPanel.svelte similarity index 92% rename from Front/src/Componentes/login.svelte rename to Front/src/Componentes/LoginPanel.svelte index 3c1ad6b..9de9755 100644 --- a/Front/src/Componentes/login.svelte +++ b/Front/src/Componentes/LoginPanel.svelte @@ -29,7 +29,6 @@ } const ret = await response.json(); - localStorage.clear(); localStorage.setItem('email', ret.email); sessionStorage.setItem('token', ret.token); //setTimeout(() => console.log("50ms") ,50); @@ -41,7 +40,7 @@ - + Iniciar Sesión diff --git a/Front/src/Componentes/NavBarAutocompletable.svelte b/Front/src/Componentes/NavBarAutocompletable.svelte index 08089c1..4250159 100644 --- a/Front/src/Componentes/NavBarAutocompletable.svelte +++ b/Front/src/Componentes/NavBarAutocompletable.svelte @@ -2,10 +2,12 @@ import { Navbar, NavbarBrand, NavbarToggler, Nav, Collapse } from "@sveltestrap/sveltestrap"; import { onMount } from "svelte"; import { writable } from 'svelte/store'; + import { link, links } from "svelte-routing"; import './css/popup.css'; import type { Grupo } from "../types"; import { urlG } from "../stores/urlStore"; + import { navigate } from "svelte-routing"; let isOpen: boolean = $state(false); @@ -39,23 +41,39 @@ }) function redirijir(path: string){ - location.replace(path); + navigate(path); } + let theme = $state(localStorage.getItem("theme") ?? "light"); + const toggleTheme = () => { + theme = theme === "light" ? "dark" : "light"; + document.body.setAttribute("data-bs-theme", theme); + localStorage.setItem("theme", theme); + }; + AlquilaFacil -
- - Volver al Menú - +
+
+ + Volver al Menú + +
+
(isOpen = !isOpen)} /> -