nomás me faltan los put para propiedades

Signed-off-by: fede <federico.nicolas.polidoro@gmail.com>
This commit is contained in:
2024-11-17 02:04:26 -03:00
parent 52e4afb7c4
commit d2adb7733e
12 changed files with 211 additions and 23 deletions

View File

@@ -1,15 +1,43 @@
using System;
using System.Reflection.Metadata.Ecma335;
using Entidades;
using Entidades.Dto;
using Microsoft.EntityFrameworkCore;
using Modelo;
public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades>
{
public IQueryable<Propiedade> ListarPropiedades(){
var con = Context;
return con.Propiedades.AsQueryable();
public IQueryable<PropiedadesDto> ListarPropiedades(){
FormattableString sqlq = $"""
SELECT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS TipoPropiedad FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
""";
var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq);
return ret;
}
public bool AñadirPropiedad(Propiedade prop){
public Propiedade? ObtenerPropiedadPorId(int Id) {
FormattableString sqlq = $"""
SELECT * FROM Propiedades p
WHERE p.id = {Id}
LIMIT 1
""";
Propiedade? prop = Context.Database.SqlQuery<Propiedade>(sqlq).First();
if (prop == null || prop.Id == 0) {
return null;
}
return prop;
}
public bool AñadirPropiedad(Propiedade? prop){
if (prop == null) return false;
var con = Context;
int count = con.Propiedades.Count()+1;
@@ -19,4 +47,24 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades>
con.Propiedades.Add(prop);
return Guardar(con);
}
public IQueryable<PropiedadesDto> ObtenerPropiedadesPorEmail(string email) {
FormattableString sqlq = $"""
SELECT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion as TipoPropiedad From Propiedades p
JOIN Clientes c ON c.dni = p.dnipropietario
JOIN TipoPropiedad tp ON tp.id = p.idtipropiedad
WHERE c.email = {email}
""";
var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq);
return ret;
}
public bool BajaPropiedad(int id) {
var con = Context;
Propiedade prop = con.Propiedades.Find(id);
prop.Idestado = 3;
return Guardar(con);
}
}

View File

@@ -1,13 +1,38 @@
using System;
using Entidades;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion.Internal;
using Modelo;
public class RepositorioPropietario: RepositorioBase<RepositorioPropietario> {
public Cliente? ObtenerClientePorEmail(string email){
var con = Context;
public Cliente? ObtenerPropietarioPorDni(long Dni){
if (Dni < 1) return null;
Cliente? cli = con.Clientes.FirstOrDefault(c => c.Email == email);
FormattableString sqlq = $"""
SELECT * FROM Clientes c
JOIN cliente_Grupos cg ON cg.idgrupo = 1
WHERE c.dni = {Dni}
LIMIT 1
""";
Cliente? cli = Context.Database.SqlQuery<Cliente?>(sqlq).First();
if (cli.Dni == 0 || cli == null) return null;
return cli;
}
public Cliente? ObtenerPropietarioPorEmail(string email){
FormattableString sqlq = $"""
SELECT * FROM Clientes c
JOIN cliente_Grupos cg ON cg.idgrupo = 1
WHERE c.email = {email}
LIMIT 1
""";
Cliente? cli = Context.Database.SqlQuery<Cliente?>(sqlq).First();
if (cli.Dni == 0 || cli == null) return null;
return cli;
}
}

View File

@@ -1,10 +1,8 @@
using System.Collections.ObjectModel;
using System.Security.Cryptography;
using System.Text;
using Entidades.Dto;
using Entidades;
using System.Reflection.Metadata.Ecma335;
namespace Modelo;
public class RepositorioUsuarios: RepositorioBase<RepositorioUsuarios> {
@@ -60,9 +58,10 @@ public class RepositorioUsuarios: RepositorioBase<RepositorioUsuarios> {
var con = Context;
Cliente? cliOld = con.Clientes.Find(cli.Dni);
if (cliOld == null) return false;
if (cli.Dni != cliOld.Dni) return false;
cliOld = cli;
return Guardar(con);
}