diff --git a/Aspnet/Controllers/PropiedadesController.cs b/Aspnet/Controllers/PropiedadesController.cs index 730ab44..05daf81 100644 --- a/Aspnet/Controllers/PropiedadesController.cs +++ b/Aspnet/Controllers/PropiedadesController.cs @@ -1,6 +1,5 @@ using Entidades; using Entidades.Dto; -using Microsoft.AspNetCore.Http.HttpResults; using Microsoft.AspNetCore.Mvc; using Modelo; @@ -33,18 +32,17 @@ public class PropiedadesController: ControllerBase { [HttpGet("api/propiedades/Propietario")] public IActionResult ObtenerPropiedadesPorPropietario ( - [FromBody] string email, + [FromHeader(Name = "Email")] string email, [FromHeader(Name = "Auth")] string Auth) { if (String.IsNullOrEmpty(Auth)) return Unauthorized(); - var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 12); + var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 2); if (validacion1 == false) return Unauthorized(); email = email.Trim(); if (String.IsNullOrEmpty(email)) return BadRequest(new {message ="falta campo email"}); - var ret = RepositorioPropiedades.Singleton.ObtenerPropiedadesPorEmail(email); - + IQueryable ret = RepositorioPropiedades.Singleton.ObtenerPropiedadesPorEmail(email); return Ok(ret); } @@ -76,14 +74,16 @@ public class PropiedadesController: ControllerBase { } [HttpDelete("api/propiedad")] - public IActionResult BajaPropiedad(int id, [FromHeader(Name = "Auth")] string Auth){ + public IActionResult BajaPropiedad(int id, [FromHeader(Name = "Auth")] string Auth, [FromHeader(Name = "Email")] string email){ if (String.IsNullOrEmpty(Auth)) return Unauthorized(); var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 2); if (validacion1 == false) return Unauthorized(); + if (String.IsNullOrEmpty(email)) return BadRequest(new { message = "Fallo al identificarse el usuario"}); if (id <= 0) return BadRequest(new { message = "No es una id valida"}); - var ret = RepositorioPropiedades.Singleton.BajaPropiedad(id); + Cliente? propie = RepositorioPropietario.Singleton.ObtenerPropietarioPorEmail(email); + var ret = RepositorioPropiedades.Singleton.BajaPropiedad(id, propie); return ret ? Ok(new {message = $"la propiedad con id {id} fue dada de baja"}): @@ -147,4 +147,4 @@ public class PropiedadesController: ControllerBase { return ret; } -} \ No newline at end of file +} diff --git a/Entidades/Dto/PropiedadesDto.cs b/Entidades/Dto/PropiedadesDto.cs index d63e3a9..bb0c3c4 100644 --- a/Entidades/Dto/PropiedadesDto.cs +++ b/Entidades/Dto/PropiedadesDto.cs @@ -3,7 +3,7 @@ public class PropiedadesDto { public int id { get; set; } public string Ubicacion { get; set; } = ""; public int canthabitaciones { get; set; } - public string piso { get; set; } = ""; + public int piso { get; set; } public string letra { get; set; } = ""; - public string TipoPropiedad { get; set; } = ""; -} \ No newline at end of file + public string Tipo { get; set; } = ""; +} diff --git a/Front/src/App.svelte b/Front/src/App.svelte index 6e11672..b1efce0 100644 --- a/Front/src/App.svelte +++ b/Front/src/App.svelte @@ -6,6 +6,7 @@ import InfoPage from './paginas/info.svelte'; import InqPage from "./paginas/inquilino.svelte"; import PropPage from "./paginas/propietario.svelte"; + import MisPropiedades from "./paginas/MisPropiedades.svelte"; import FrontAdmin from "./paginas/grupos/AdminG.svelte"; import FrontInformes from "./paginas/grupos/InformesG.svelte"; import FrontInquilino from "./paginas/grupos/InquilinoG.svelte"; @@ -43,6 +44,12 @@ + + + + + + @@ -56,5 +63,7 @@ + + diff --git a/Front/src/Componentes/NavBarAutocompletable.svelte b/Front/src/Componentes/NavBarAutocompletable.svelte index 8be3958..225919a 100644 --- a/Front/src/Componentes/NavBarAutocompletable.svelte +++ b/Front/src/Componentes/NavBarAutocompletable.svelte @@ -1,21 +1,11 @@ + + + {id} + {ubicacion} + {letra} + {piso} + {tipo} + + + + + +{#if modal} + +{/if} diff --git a/Front/src/Componentes/login.svelte b/Front/src/Componentes/login.svelte index a98a8f3..34a432c 100644 --- a/Front/src/Componentes/login.svelte +++ b/Front/src/Componentes/login.svelte @@ -5,7 +5,6 @@ let email = $state("") let contraseña = $state("") let errorMessage = $state("") - let showAlert = false; // @ts-ignore async function submitForm(event) { @@ -25,7 +24,6 @@ if (!response.ok){ const errorData = await response.json() errorMessage = errorData.message; - showAlert = true; return; } diff --git a/Front/src/paginas/MisPropiedades.svelte b/Front/src/paginas/MisPropiedades.svelte new file mode 100644 index 0000000..45a6353 --- /dev/null +++ b/Front/src/paginas/MisPropiedades.svelte @@ -0,0 +1,62 @@ + + + +
+ + + + + + + + + + + + {#each $propiedades as propiedad} + {@debug propiedad} + + {/each} + +
#ubicacionLetraPisoTipo
+
+{#if fallo} +
Fallo al intentar Obtener la lista de propiedades
+{/if} diff --git a/Front/src/paginas/PublicarPropiedad.svelte b/Front/src/paginas/PublicarPropiedad.svelte index bf47086..341670b 100644 --- a/Front/src/paginas/PublicarPropiedad.svelte +++ b/Front/src/paginas/PublicarPropiedad.svelte @@ -2,6 +2,7 @@ import { writable } from "svelte/store"; // Importar writable para los estados import ModalEstatico from "../Componentes/ModalEstatico.svelte"; import NavBarAutocompletable from "../Componentes/NavBarAutocompletable.svelte"; + import BarraHorizontalConTexto from "../Componentes/BarraHorizontalConTexto.svelte"; type Propiedad = { ubicacion: string, @@ -51,73 +52,85 @@ -
-

Registrar Propiedad

-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
- -
+
+ +
+ + Este es un formulario con el objetivo de que usted pueda registrar las propiedades suyas que quiera hacer visibles a las busquedas de inquilinos. +

+ + + Para poder cargar la propiedad deberá especificar su ubicacion, la cantidad de habitaciones que posée, en caso de ser un edificio el piso, y letra, y que tipo de propiedad és (casa, departamento, oficina...). +
+ +
+

Registrar Propiedad

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
{#if mostrarModal == true} -{/if} \ No newline at end of file +{/if} diff --git a/Front/src/paginas/inquilino.svelte b/Front/src/paginas/inquilino.svelte index 0da3a45..69f084a 100644 --- a/Front/src/paginas/inquilino.svelte +++ b/Front/src/paginas/inquilino.svelte @@ -6,9 +6,9 @@ -
+
-
+


Este es un formulario para crear una cuenta de Propietario. diff --git a/Front/src/paginas/propietario.svelte b/Front/src/paginas/propietario.svelte index 447c6d1..b551918 100644 --- a/Front/src/paginas/propietario.svelte +++ b/Front/src/paginas/propietario.svelte @@ -6,9 +6,9 @@ -
+
-
+


Este es un formulario para crear una cuenta de Inquilino. diff --git a/Front/src/types.d.ts b/Front/src/types.d.ts new file mode 100644 index 0000000..31d5f36 --- /dev/null +++ b/Front/src/types.d.ts @@ -0,0 +1,17 @@ +export type PropiedadDto = { + id: number, + ubicacion: string, + tipo: string, + piso: string | null, + letra: string | null, +} +export type Permiso = { + id: number; + descripcion: string; + }; + +export type Grupo = { + id: number; + nombre: string; + idpermisos: Permiso[]; + }; diff --git a/Modelo/RepositorioPropiedades.cs b/Modelo/RepositorioPropiedades.cs index 99c57bf..5d6d374 100644 --- a/Modelo/RepositorioPropiedades.cs +++ b/Modelo/RepositorioPropiedades.cs @@ -7,8 +7,7 @@ using Microsoft.EntityFrameworkCore; using Modelo; using MySql.Data.MySqlClient; -public class RepositorioPropiedades: RepositorioBase -{ +public class RepositorioPropiedades: RepositorioBase { public IQueryable ListarPropiedades(){ FormattableString sqlq = $""" @@ -69,10 +68,10 @@ public bool AñadirPropiedad(Propiedade? prop) { public IQueryable ObtenerPropiedadesPorEmail(string email) { FormattableString sqlq = $""" - SELECT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion as TipoPropiedad From Propiedades p + SELECT p.id, p.ubicacion as Ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion as Tipo From Propiedades p JOIN Clientes c ON c.dni = p.dnipropietario JOIN TipoPropiedad tp ON tp.id = p.idtipropiedad - WHERE c.email = {email} + WHERE c.email = {email} AND p.idestado = 1 """; var ret = Context.Database.SqlQuery(sqlq); return ret; @@ -93,10 +92,14 @@ public bool AñadirPropiedad(Propiedade? prop) { return Guardar(con); } - public bool BajaPropiedad(int id) { + public bool BajaPropiedad(int id, Cliente? cli) { + if (cli == null) return false; + var con = Context; - Propiedade? prop = con.Propiedades.Find(id); + Propiedade? prop = con.Propiedades.FirstOrDefault(x=>x.Id == id); if (prop == null) return false; + Console.WriteLine("prop.dni: "+prop.Dnipropietario+", cli.dni: "+cli.Dni); + if (prop.Dnipropietario != cli.Dni) return false; prop.Idestado = 3; return Guardar(con); @@ -121,4 +124,4 @@ public bool AñadirPropiedad(Propiedade? prop) { return Guardar(con); } -} \ No newline at end of file +}