Files
AlquilaFacil/Modelo/RepositorioPropietario.cs

54 lines
1.7 KiB
C#

using Entidades;
using Entidades.Dto;
using Microsoft.EntityFrameworkCore;
using Modelo;
public class RepositorioPropietario: RepositorioBase<RepositorioPropietario> {
public IQueryable<PropietarioDto> GetPropietarios() {
FormattableString sqlq =
$"""
SELECT I.Dni, I.Nombre, I.Apellido FROM Clientes I
JOIN cliente_Grupos cg on cg.idcliente = I.Dni
WHERE cg.idgrupo = 1;
""";
return Context.Database.SqlQuery<PropietarioDto>(sqlq);
}
public Cliente? ObtenerPropietarioPorDni(long Dni){
if (Dni < 1) return null;
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 == null|| cli.Dni == 0) return null;
if (cli.Dni == 0 || cli == null) return null;
return cli;
}
public Cliente? ObtenerPropietarioPorEmail(string email){
var con = Context;
Cliente? cli = con.Clientes.Include(x=>x.Idgrupos).FirstOrDefault(x=>x.Email == email);
if (cli == null|| cli.Dni == 0) return null;
var grupo = cli.Idgrupos.FirstOrDefault(x=>x.Id == 1);
if (grupo == null) return null;
return cli;
}
public Cliente? ObtenerPropietarioPorIdPropiedad(int idpropiedad) {
var con = Context;
Propiedade? pro = con.Propiedades.Include(x=>x.DnipropietarioNavigation)
.FirstOrDefault(x=>x.Id == idpropiedad);
if (pro == null || pro.DnipropietarioNavigation == null) return null;
return pro.DnipropietarioNavigation;
}
}