using System; using System.Reflection.Metadata.Ecma335; using Entidades; using Entidades.Dto; using Microsoft.EntityFrameworkCore; using Modelo; public class RepositorioPropiedades: RepositorioBase { public IQueryable 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(sqlq); return ret; } public Propiedade? ObtenerPropiedadPorId(int Id) { FormattableString sqlq = $""" SELECT * FROM Propiedades p WHERE p.id = {Id} LIMIT 1 """; Propiedade? prop = Context.Database.SqlQuery(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; prop.Id = count; prop.Idestado = 1; con.Propiedades.Add(prop); return Guardar(con); } 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 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(sqlq); return ret; } public bool BajaPropiedad(int id) { var con = Context; Propiedade prop = con.Propiedades.Find(id); prop.Idestado = 3; return Guardar(con); } }