diff --git a/Aspnet/AlquilaFacil.csproj b/Aspnet/AlquilaFacil.csproj
index 842f7c7..a513915 100644
--- a/Aspnet/AlquilaFacil.csproj
+++ b/Aspnet/AlquilaFacil.csproj
@@ -9,6 +9,7 @@
+
diff --git a/Aspnet/Aspnet.sln b/Aspnet/Aspnet.sln
new file mode 100644
index 0000000..baec485
--- /dev/null
+++ b/Aspnet/Aspnet.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.5.002.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AlquilaFacil", "AlquilaFacil.csproj", "{76BA8B31-BAD3-49CD-B8B8-BE22D8AEA281}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {76BA8B31-BAD3-49CD-B8B8-BE22D8AEA281}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {76BA8B31-BAD3-49CD-B8B8-BE22D8AEA281}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {76BA8B31-BAD3-49CD-B8B8-BE22D8AEA281}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {76BA8B31-BAD3-49CD-B8B8-BE22D8AEA281}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {CF93AFAC-32EF-4993-84A2-CA2EB32F58FF}
+ EndGlobalSection
+EndGlobal
diff --git a/Aspnet/Controllers/PropiedadesController.cs b/Aspnet/Controllers/PropiedadesController.cs
index b81634e..2c35437 100644
--- a/Aspnet/Controllers/PropiedadesController.cs
+++ b/Aspnet/Controllers/PropiedadesController.cs
@@ -1,8 +1,16 @@
using Microsoft.AspNetCore.Mvc;
+using Modelo;
namespace AlquilaFacil.Controllers;
[ApiController]
public class PropiedadesController: ControllerBase {
+ [HttpGet("api/propiedades")]
+ public IActionResult ListarPropietarios([FromHeader(Name = "Auth")] string Auth) {
+ if (String.IsNullOrEmpty(Auth)) return Unauthorized();
+ var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, Request.Path);
+ if (validacion1 == false) return Unauthorized();
+ var ret = RepositorioPropiedades.Singleton.ListarPropiedades();
+ }
}
\ No newline at end of file
diff --git a/Aspnet/Controllers/PropietarioController.cs b/Aspnet/Controllers/PropietarioController.cs
index 6b0d395..84a54d4 100644
--- a/Aspnet/Controllers/PropietarioController.cs
+++ b/Aspnet/Controllers/PropietarioController.cs
@@ -10,11 +10,6 @@ namespace AlquilaFacil.Controllers;
[ApiController]
public class PropietarioController: ControllerBase {
- [HttpGet("api/propietario")]
- public IActionResult ListarPropietarios([FromHeader(Name = "Auth")] string Auth) {
- return Ok();
- }
-
[HttpPost("api/propietarios")]
public IActionResult AltaPropietario([FromBody]CrearClienteDto Propietario,[FromHeader(Name = "Auth")] string Auth) {
if (String.IsNullOrEmpty(Auth)) return Unauthorized();
@@ -38,6 +33,30 @@ public class PropietarioController: ControllerBase {
return ret ?
Ok(new {message = "Se añadio el propietario exitosamente"}) : BadRequest();
}
+
+ [HttpPatch("api/propietarios")]
+ public IActionResult PatchPropietario([FromBody]CrearClienteDto Propietario, [FromHeader(Name = "Auth")] string Auth){
+ if (String.IsNullOrEmpty(Auth)) return Unauthorized();
+ var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, Request.Path);
+ if (validacion1 == false) return Unauthorized();
+
+ string validacion2 = verificarCrearUsuario(Propietario);
+ if (validacion2 != "") return BadRequest(validacion2);
+
+ var cli = new Cliente {
+ Dni = Propietario.dni,
+ Nombre = Propietario.nombre,
+ Domicilio = Propietario.domicilio,
+ Apellido = Propietario.apellido,
+ Celular = Propietario.celular,
+ Email = Propietario.email,
+ Contraseña = Encoding.UTF8.GetBytes(HacerHash(Propietario.contraseña))
+ };
+ var ret = RepositorioUsuarios.Singleton.ActualizarPropietario(cli);
+ return ret ?
+ Ok(new {message = "Se Modifico el propietario exitosamente"}) : BadRequest();
+ }
+
private string verificarCrearUsuario(CrearClienteDto cid) {
string msg = "";
diff --git a/Entidades/Dto/PropiedadDto.cs b/Entidades/Dto/PropiedadDto.cs
new file mode 100644
index 0000000..fef97c8
--- /dev/null
+++ b/Entidades/Dto/PropiedadDto.cs
@@ -0,0 +1,9 @@
+namespace Entidades.Dto;
+public class PropiedadDto {
+ public string Ubicacion { get; set; } = null!;
+ public int Canthabitaciones { get; set; }
+ public int? Piso { get; set; }
+ public string? Letra { get; set; }
+ public string Email { get; set; }
+ public int Idtipropiedad { get; set; }
+}
\ No newline at end of file
diff --git a/Modelo/RepositorioBase.cs b/Modelo/RepositorioBase.cs
index 2315c13..6454fa3 100644
--- a/Modelo/RepositorioBase.cs
+++ b/Modelo/RepositorioBase.cs
@@ -7,11 +7,11 @@ namespace Modelo;
public abstract class RepositorioBase
where S : new()
{
- protected AlquilaFacilContext Context { get{ return new AlquilaFacilContext();}}
+ protected AlquilaFacilContext Context { get { return new AlquilaFacilContext(); }}
private static readonly S instance = new();
- public static S Singleton { get{return instance;}}
+ public static S Singleton { get { return instance; }}
- public bool Guardar(AlquilaFacilContext context){
+ public bool Guardar(AlquilaFacilContext context) {
bool ret = false;
try
{
diff --git a/Modelo/RepositorioInquilinos.cs b/Modelo/RepositorioInquilinos.cs
index 809b15e..48de959 100644
--- a/Modelo/RepositorioInquilinos.cs
+++ b/Modelo/RepositorioInquilinos.cs
@@ -8,7 +8,9 @@ public class RepositorioInquilinos: RepositorioBase {
{
FormattableString sqlq =
$"""
- SELECT I.Dni, I.Nombre, I.Apellido FROM Inquilinos
+ SELECT I.Dni, I.Nombre, I.Apellido FROM Clientes I
+ JOIN cliente_Grupos cg on cg.idcliente = I.Dni
+ WHERE cg.idgrupo = 2;
""";
return Context.Database.SqlQuery(sqlq);
}
diff --git a/Modelo/RepositorioPropiedades.cs b/Modelo/RepositorioPropiedades.cs
index b911e46..3375117 100644
--- a/Modelo/RepositorioPropiedades.cs
+++ b/Modelo/RepositorioPropiedades.cs
@@ -1,9 +1,22 @@
+using Entidades;
+using Microsoft.EntityFrameworkCore;
using Modelo;
public class RepositorioPropiedades: RepositorioBase
{
+ public IQueryable ListarPropiedades(){
+ var con = Context;
+ return con.Propiedades.AsQueryable();
+ }
- public bool AñadirPropiedad(){
- return false;
+ public bool AñadirPropiedad(Propiedade prop){
+ var con = Context;
+
+ int count = con.Propiedades.Count()+1;
+
+ prop.Id = count;
+ prop.Idestado = 1;
+ con.Propiedades.Add(prop);
+ return Guardar(con);
}
}
\ No newline at end of file
diff --git a/Modelo/RepositorioPropietario.cs b/Modelo/RepositorioPropietario.cs
new file mode 100644
index 0000000..56e8510
--- /dev/null
+++ b/Modelo/RepositorioPropietario.cs
@@ -0,0 +1,13 @@
+using Entidades;
+using Microsoft.EntityFrameworkCore;
+using Modelo;
+
+public class RepositorioPropietario: RepositorioBase {
+ public Cliente? ObtenerClientePorEmail(string email){
+ var con = Context;
+
+ Cliente? cli = con.Clientes.FirstOrDefault(c => c.Email == email);
+ return cli;
+ }
+
+}
diff --git a/Modelo/RepositorioUsuarios.cs b/Modelo/RepositorioUsuarios.cs
index b139d04..1a0a657 100644
--- a/Modelo/RepositorioUsuarios.cs
+++ b/Modelo/RepositorioUsuarios.cs
@@ -7,9 +7,8 @@ using System.Reflection.Metadata.Ecma335;
namespace Modelo;
-public class RepositorioUsuarios: RepositorioBase
-{
- public bool AltaInquilino(Cliente cli){
+public class RepositorioUsuarios: RepositorioBase {
+ public bool AltaInquilino(Cliente cli) {
var con = Context;
//check por si la cuenta ya existe (puede ser propietario)
@@ -34,8 +33,7 @@ public class RepositorioUsuarios: RepositorioBase
}
- public bool AltaPropietario(Cliente cli)
- {
+ public bool AltaPropietario(Cliente cli) {
var con = Context;
//check por si la cuenta ya existe (puede ser propietario)
@@ -58,6 +56,16 @@ public class RepositorioUsuarios: RepositorioBase
return Guardar(con);
}
+ public bool ActualizarPropietario(Cliente cli) {
+ var con = Context;
+ Cliente? cliOld = con.Clientes.Find(cli.Dni);
+ if (cliOld == null) return false;
+
+ cliOld = cli;
+
+ }
+
+
public bool CheckUsuario(LoginDto logindto) {
string Contraseña = HacerHash(logindto.Contraseña);
@@ -71,12 +79,12 @@ public class RepositorioUsuarios: RepositorioBase
return false;
}
- private string HacerHash(string pass){
+ private string HacerHash(string pass) {
var buf = SHA256.HashData(Encoding.UTF8.GetBytes(pass));
return BitConverter.ToString(buf).Replace("-","");
}
- public bool CheckToken(string email, string token){
+ public bool CheckToken(string email, string token) {
var usu = Context.Clientes.FirstOrDefault(x => x.Email == email);
if (usu == null) return false;
@@ -87,8 +95,7 @@ public class RepositorioUsuarios: RepositorioBase
return usu.Token == token;
}
- public void GuardarToken(LoginDto login, string tokenString)
- {
+ public void GuardarToken(LoginDto login, string tokenString) {
var con = Context;
var usu = con.Clientes.FirstOrDefault(x => x.Email == login.Email);
if (usu == null) return;