Format code with proper spacing and brackets

This commit is contained in:
2025-05-05 22:45:45 -03:00
parent fddafd5234
commit f7d52041ba

View File

@@ -8,43 +8,48 @@ using Microsoft.Identity.Client;
using Modelo; using Modelo;
using MySql.Data.MySqlClient; using MySql.Data.MySqlClient;
public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> { public class RepositorioPropiedades : RepositorioBase<RepositorioPropiedades>
{
public IQueryable<PropiedadesDto> ListarPropiedades(){ public IQueryable<PropiedadesDto> ListarPropiedades()
{
FormattableString sqlq = $""" FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo, SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto, GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Iddivisa p.iddivisa as Iddivisa
FROM Propiedades p FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1 JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad
JOIN Servicios s on sp.idServicio =s.id JOIN Servicios s on sp.idServicio =s.id
GROUP BY p.id GROUP BY p.id
"""; """;
var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq); var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq);
return ret; return ret;
} }
public Propiedade? ObtenerPropiedadPorId(int Id) { public Propiedade? ObtenerPropiedadPorId(int Id)
{
var con = Context; var con = Context;
Propiedade? prop = con.Propiedades.Include(x=>x.DnipropietarioNavigation).FirstOrDefault(x=>x.Id == Id); Propiedade? prop = con.Propiedades.Include(x => x.DnipropietarioNavigation).FirstOrDefault(x => x.Id == Id);
if (prop == null || prop.Id == 0) { if (prop == null || prop.Id == 0)
{
return null; return null;
} }
return prop; return prop;
} }
public bool AñadirPropiedad(Propiedade? prop) { public bool AñadirPropiedad(Propiedade? prop)
{
if (prop == null) return false; if (prop == null) return false;
var con = Context; var con = Context;
if (string.IsNullOrEmpty(prop.Letra)) prop.Letra = "_"; if (string.IsNullOrEmpty(prop.Letra)) prop.Letra = "_";
var filasInsertadasParam = new MySqlParameter("@p_filas_insertadas", SqlDbType.Int) var filasInsertadasParam = new MySqlParameter("@p_filas_insertadas", SqlDbType.Int)
{ {
Direction = ParameterDirection.Output Direction = ParameterDirection.Output
@@ -62,18 +67,19 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
new MySqlParameter("@p_letra", prop.Letra), new MySqlParameter("@p_letra", prop.Letra),
new MySqlParameter("@p_dni_propietario", prop.Dnipropietario), new MySqlParameter("@p_dni_propietario", prop.Dnipropietario),
new MySqlParameter("@p_id_tipo_propiedad", prop.Idtipropiedad), new MySqlParameter("@p_id_tipo_propiedad", prop.Idtipropiedad),
new MySqlParameter("@p_monto",prop.Monto), new MySqlParameter("@p_monto", prop.Monto),
new MySqlParameter("@iddivisa", prop.Iddivisa), new MySqlParameter("@iddivisa", prop.Iddivisa),
filasInsertadasParam filasInsertadasParam
); );
return (int)filasInsertadasParam.Value == 1? true: false; return (int)filasInsertadasParam.Value == 1 ? true : false;
} }
public bool PatchPropiedad(Propiedade prop, long dni) { public bool PatchPropiedad(Propiedade prop, long dni)
{
var con = Context; var con = Context;
Propiedade? propi = con.Propiedades.Include(x=>x.IdServicios).FirstOrDefault(x=>x.Id == prop.Id); Propiedade? propi = con.Propiedades.Include(x => x.IdServicios).FirstOrDefault(x => x.Id == prop.Id);
if (propi == null) return false; if (propi == null) return false;
propi.Canthabitaciones = prop.Canthabitaciones; propi.Canthabitaciones = prop.Canthabitaciones;
@@ -83,10 +89,11 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
propi.Letra = prop.Letra; propi.Letra = prop.Letra;
propi.Monto = prop.Monto; propi.Monto = prop.Monto;
propi.Iddivisa = prop.Iddivisa; propi.Iddivisa = prop.Iddivisa;
propi.IdServicios.Clear(); propi.IdServicios.Clear();
foreach(Servicio ser in prop.IdServicios) { foreach (Servicio ser in prop.IdServicios)
var servi = con.Servicios.FirstOrDefault(x=>x.Id == ser.Id); {
var servi = con.Servicios.FirstOrDefault(x => x.Id == ser.Id);
if (servi == null) return false; if (servi == null) return false;
propi.IdServicios.Add(servi); propi.IdServicios.Add(servi);
} }
@@ -94,46 +101,50 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
return Guardar(con); return Guardar(con);
} }
public IQueryable<PropiedadesDto> ObtenerPropiedadesPorEmail(string email) { public IQueryable<PropiedadesDto> ObtenerPropiedadesPorEmail(string email)
{
FormattableString sqlq = $""" FormattableString sqlq = $"""
SELECT p.id, p.ubicacion as Ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion as Tipo, GROUP_CONCAT(IFNULL(s.descripcion, '') SEPARATOR ', ') AS Servicios, p.monto as Monto, SELECT p.id, p.ubicacion as Ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion as Tipo, GROUP_CONCAT(IFNULL(s.descripcion, '') SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Iddivisa p.iddivisa as Iddivisa
FROM Propiedades p FROM Propiedades p
JOIN Clientes c ON c.dni = p.dnipropietario JOIN Clientes c ON c.dni = p.dnipropietario
JOIN TipoPropiedad tp ON tp.id = p.idtipropiedad JOIN TipoPropiedad tp ON tp.id = p.idtipropiedad
LEFT JOIN Servicio_Propiedad ps ON ps.idPropiedad = p.id LEFT JOIN Servicio_Propiedad ps ON ps.idPropiedad = p.id
LEFT JOIN Servicios s ON s.Id = ps.idServicio LEFT JOIN Servicios s ON s.Id = ps.idServicio
WHERE c.email = {email} AND p.idestado = 1 WHERE c.email = {email} AND p.idestado = 1
GROUP BY p.id GROUP BY p.id
"""; """;
var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq); var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq);
return ret; return ret;
} }
public IQueryable<PropiedadesDto> ObtenerPropiedadesDeBajaPorEmail(string email) { public IQueryable<PropiedadesDto> ObtenerPropiedadesDeBajaPorEmail(string email)
{
FormattableString sqlq = $""" FormattableString sqlq = $"""
SELECT p.id, p.ubicacion as Ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion as Tipo, GROUP_CONCAT(IFNULL(s.descripcion, '') SEPARATOR ', ') AS Servicios, p.monto as Monto, SELECT p.id, p.ubicacion as Ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion as Tipo, GROUP_CONCAT(IFNULL(s.descripcion, '') SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Iddivisa p.iddivisa as Iddivisa
FROM Propiedades p FROM Propiedades p
JOIN Clientes c ON c.dni = p.dnipropietario JOIN Clientes c ON c.dni = p.dnipropietario
JOIN TipoPropiedad tp ON tp.id = p.idtipropiedad JOIN TipoPropiedad tp ON tp.id = p.idtipropiedad
LEFT JOIN Servicio_Propiedad ps ON ps.idPropiedad = p.id LEFT JOIN Servicio_Propiedad ps ON ps.idPropiedad = p.id
LEFT JOIN Servicios s ON s.Id = ps.idServicio LEFT JOIN Servicios s ON s.Id = ps.idServicio
WHERE c.email = {email} AND p.idestado = 3 WHERE c.email = {email} AND p.idestado = 3
GROUP BY p.id GROUP BY p.id
"""; """;
var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq); var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq);
return ret; return ret;
} }
public bool AñadirServicioAPropiedad(int idprop, List<int> idserv){ public bool AñadirServicioAPropiedad(int idprop, List<int> idserv)
{
var con = Context; var con = Context;
Propiedade? prop = con.Propiedades.Find(idprop); Propiedade? prop = con.Propiedades.Find(idprop);
if (prop == null) return false; if (prop == null) return false;
foreach (int id in idserv) { foreach (int id in idserv)
{
Servicio? servicio = con.Servicios.Find(id); Servicio? servicio = con.Servicios.Find(id);
if (servicio == null) return false; if (servicio == null) return false;
@@ -143,17 +154,21 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
return Guardar(con); return Guardar(con);
} }
public bool BajaPropiedad(int id, Cliente? cli) { public bool BajaPropiedad(int id, Cliente? cli)
{
if (cli == null) return false; if (cli == null) return false;
var con = Context; var con = Context;
Propiedade? prop = con.Propiedades.FirstOrDefault(x=>x.Id == id); Propiedade? prop = con.Propiedades.FirstOrDefault(x => x.Id == id);
if (prop == null) return false; if (prop == null) return false;
if (prop.Dnipropietario != cli.Dni) return false; if (prop.Dnipropietario != cli.Dni) return false;
if(prop.Idestado == 1){ if (prop.Idestado == 1)
{
prop.Idestado = 3; prop.Idestado = 3;
}else{ }
else
{
prop.Idestado = 1; prop.Idestado = 1;
} }
GenerarLog(con, cli.Dni, $"Baja propiedad: {prop.Id}"); GenerarLog(con, cli.Dni, $"Baja propiedad: {prop.Id}");
@@ -161,36 +176,41 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
} }
public bool BajaPropiedad(int id, long dni) { public bool BajaPropiedad(int id, long dni)
{
var con = Context; var con = Context;
Propiedade? prop = con.Propiedades.FirstOrDefault(x=>x.Id == id); Propiedade? prop = con.Propiedades.FirstOrDefault(x => x.Id == id);
if (prop == null||prop.Dnipropietario == 0) return false; if (prop == null || prop.Dnipropietario == 0) return false;
prop.Idestado = prop.Idestado == 3 ? 1 : 3; prop.Idestado = prop.Idestado == 3 ? 1 : 3;
GenerarLog(con, dni, $"Baja propiedad: {prop.Id}"); GenerarLog(con, dni, $"Baja propiedad: {prop.Id}");
return Guardar(con); return Guardar(con);
} }
public bool BajaServiciosAPropiedad(int idprop, List<int> idserv, long dni) { public bool BajaServiciosAPropiedad(int idprop, List<int> idserv, long dni)
{
var con = Context; var con = Context;
Propiedade? prop = con.Propiedades.Include(x=>x.IdServicios).FirstOrDefault(x => x.Id == idprop); Propiedade? prop = con.Propiedades.Include(x => x.IdServicios).FirstOrDefault(x => x.Id == idprop);
if (prop == null) return false; if (prop == null) return false;
foreach (int id in idserv) { foreach (int id in idserv)
{
Servicio? servicio = con.Servicios.Find(id); Servicio? servicio = con.Servicios.Find(id);
if (servicio == null) return false; if (servicio == null) return false;
if (prop.IdServicios.Contains(servicio)){ if (prop.IdServicios.Contains(servicio))
{
prop.IdServicios.Remove(servicio); prop.IdServicios.Remove(servicio);
} }
} }
GenerarLog(con, dni, $"Baja servicios a propiedad: {prop.Id}"); GenerarLog(con, dni, $"Baja servicios a propiedad: {prop.Id}");
return Guardar(con); return Guardar(con);
} }
public IQueryable<PropiedadesDto> ObtenerPropiedesPorHabitaciones_Tipo_Servicios(int habitaciones, int tipo, string servicios) { public IQueryable<PropiedadesDto> ObtenerPropiedesPorHabitaciones_Tipo_Servicios(int habitaciones, int tipo, string servicios)
{
string serviciosEscapados = string.Join(",", servicios.Split(',').Select(s => s.Trim())); string serviciosEscapados = string.Join(",", servicios.Split(',').Select(s => s.Trim()));
FormattableString sqlq = $""" FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo, SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
@@ -198,9 +218,9 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
p.iddivisa as Iddivisa p.iddivisa as Iddivisa
FROM Propiedades p FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1 JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad
JOIN Servicios s on sp.idServicio =s.id JOIN Servicios s on sp.idServicio =s.id
WHERE p.canthabitaciones = {habitaciones} AND p.idtipropiedad = {tipo} WHERE p.canthabitaciones = {habitaciones} AND p.idtipropiedad = {tipo}
AND EXISTS ( AND EXISTS (
SELECT 1 SELECT 1
@@ -211,30 +231,32 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
) )
GROUP BY p.id GROUP BY p.id
"""; """;
var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq); var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq);
return ret; return ret;
} }
public IQueryable<PropiedadesDto> ObtenerPropiedesPorHabitaciones_Tipo(int cantidadHabitaciones, int tipoPropiedad) { public IQueryable<PropiedadesDto> ObtenerPropiedesPorHabitaciones_Tipo(int cantidadHabitaciones, int tipoPropiedad)
{
FormattableString sqlq = $""" FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo, SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto, GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Iddivisa p.iddivisa as Iddivisa
FROM Propiedades p FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1 JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad
JOIN Servicios s on sp.idServicio =s.id JOIN Servicios s on sp.idServicio =s.id
WHERE p.canthabitaciones = {cantidadHabitaciones} AND p.idtipropiedad = {tipoPropiedad} WHERE p.canthabitaciones = {cantidadHabitaciones} AND p.idtipropiedad = {tipoPropiedad}
GROUP BY p.id GROUP BY p.id
"""; """;
var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq); var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq);
return ret; return ret;
} }
public IQueryable<PropiedadesDto> ObtenerPropiedesPorServicios(string servicios) { public IQueryable<PropiedadesDto> ObtenerPropiedesPorServicios(string servicios)
{
string serviciosEscapados = string.Join(",", servicios.Split(',').Select(s => s.Trim())); string serviciosEscapados = string.Join(",", servicios.Split(',').Select(s => s.Trim()));
FormattableString sqlq = $""" FormattableString sqlq = $"""
@@ -243,9 +265,9 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
p.iddivisa as Iddivisa p.iddivisa as Iddivisa
FROM Propiedades p FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1 JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad
JOIN Servicios s on sp.idServicio =s.id JOIN Servicios s on sp.idServicio =s.id
WHERE EXISTS ( WHERE EXISTS (
SELECT 1 SELECT 1
FROM Servicio_Propiedad sp2 FROM Servicio_Propiedad sp2
@@ -253,50 +275,53 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
WHERE sp2.idPropiedad = p.id WHERE sp2.idPropiedad = p.id
AND FIND_IN_SET(s2.descripcion, {serviciosEscapados}) AND FIND_IN_SET(s2.descripcion, {serviciosEscapados})
) )
GROUP BY p.id GROUP BY p.id
"""; """;
var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq);
return ret;
}
public IQueryable<PropiedadesDto> ObtenerPropiedesPorHabitaciones(int cantidadHabitaciones) { var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq);
FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Iddivisa
FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad
JOIN Servicios s on sp.idServicio =s.id
WHERE p.canthabitaciones = {cantidadHabitaciones}
GROUP BY p.id
""";
var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq);
return ret; return ret;
} }
public IQueryable<PropiedadesDto> ObtenerPropiedesPorTipo(int tipoPropiedad) { public IQueryable<PropiedadesDto> ObtenerPropiedesPorHabitaciones(int cantidadHabitaciones)
{
FormattableString sqlq = $""" FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo, SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto, GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Iddivisa p.iddivisa as Iddivisa
FROM Propiedades p FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1 JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad
JOIN Servicios s on sp.idServicio =s.id JOIN Servicios s on sp.idServicio =s.id
WHERE p.idtipropiedad = {tipoPropiedad} WHERE p.canthabitaciones = {cantidadHabitaciones}
GROUP BY p.id GROUP BY p.id
"""; """;
var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq); var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq);
return ret; return ret;
} }
public IQueryable<PropiedadesDto> ObtenerPropiedesPorHabitaciones_Servicios(int cantidadHabitaciones, string servicios) { public IQueryable<PropiedadesDto> ObtenerPropiedesPorTipo(int tipoPropiedad)
{
FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Iddivisa
FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad
JOIN Servicios s on sp.idServicio =s.id
WHERE p.idtipropiedad = {tipoPropiedad}
GROUP BY p.id
""";
var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq);
return ret;
}
public IQueryable<PropiedadesDto> ObtenerPropiedesPorHabitaciones_Servicios(int cantidadHabitaciones, string servicios)
{
string serviciosEscapados = string.Join(",", servicios.Split(',').Select(s => s.Trim())); string serviciosEscapados = string.Join(",", servicios.Split(',').Select(s => s.Trim()));
FormattableString sqlq = $""" FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo, SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
@@ -304,9 +329,9 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
p.iddivisa as Iddivisa p.iddivisa as Iddivisa
FROM Propiedades p FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1 JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad
JOIN Servicios s on sp.idServicio =s.id JOIN Servicios s on sp.idServicio =s.id
WHERE p.canthabitaciones = {cantidadHabitaciones} WHERE p.canthabitaciones = {cantidadHabitaciones}
AND EXISTS ( AND EXISTS (
SELECT 1 SELECT 1
@@ -317,12 +342,13 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
) )
GROUP BY p.id GROUP BY p.id
"""; """;
var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq); var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq);
return ret; return ret;
} }
public IQueryable<PropiedadesDto> ObtenerPropiedesPorTipo_Servicios(int tipoPropiedad, string servicios) { public IQueryable<PropiedadesDto> ObtenerPropiedesPorTipo_Servicios(int tipoPropiedad, string servicios)
{
string serviciosEscapados = string.Join(",", servicios.Split(',').Select(s => s.Trim())); string serviciosEscapados = string.Join(",", servicios.Split(',').Select(s => s.Trim()));
FormattableString sqlq = $""" FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo, SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
@@ -330,9 +356,9 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
p.iddivisa as Iddivisa p.iddivisa as Iddivisa
FROM Propiedades p FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1 JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad
JOIN Servicios s on sp.idServicio =s.id JOIN Servicios s on sp.idServicio =s.id
WHERE p.idtipropiedad = {tipoPropiedad} WHERE p.idtipropiedad = {tipoPropiedad}
AND EXISTS ( AND EXISTS (
SELECT 1 SELECT 1
@@ -343,119 +369,130 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
) )
GROUP BY p.id GROUP BY p.id
"""; """;
var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq); var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq);
return ret; return ret;
} }
public bool BajaPropiedades(string email) { public bool BajaPropiedades(string email)
{
var con = Context; var con = Context;
try { try
IQueryable<Propiedade> listprop = con.Propiedades.Where(x=>x.DnipropietarioNavigation.Email == email); {
foreach (var item in listprop) { IQueryable<Propiedade> listprop = con.Propiedades.Where(x => x.DnipropietarioNavigation.Email == email);
foreach (var item in listprop)
{
item.Idestado = 3; item.Idestado = 3;
} }
} catch { }
catch
{
return false; return false;
} }
return Guardar(con); return Guardar(con);
} }
public IQueryable<PropiedadesDto> ListarPropiedadesPorPagina(int pag) { public IQueryable<PropiedadesDto> ListarPropiedadesPorPagina(int pag)
{
FormattableString sqlq = $""" FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo, SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto, GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Iddivisa p.iddivisa as Iddivisa
FROM Propiedades p FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1 JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad
JOIN Servicios s on sp.idServicio =s.id JOIN Servicios s on sp.idServicio =s.id
GROUP BY p.id GROUP BY p.id
LIMIT 10 OFFSET {pag*10} LIMIT 10 OFFSET {pag * 10}
"""; """;
var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq); var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq);
return ret; return ret;
} }
///////////////ADMIN ///////////////ADMIN
public IQueryable<PropiedadesAdmin> ListarPropiedadesPorPaginaAdmin(int pag) { public IQueryable<PropiedadesAdmin> ListarPropiedadesPorPaginaAdmin(int pag)
{
FormattableString sqlq = $""" FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo, SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto, ep.descripcion AS Estado, GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto, ep.descripcion AS Estado,
p.iddivisa as Iddivisa p.iddivisa as Iddivisa
FROM Propiedades p FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = ep.id JOIN EstadoPropiedad ep ON p.idestado = ep.id
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad
JOIN Servicios s on sp.idServicio =s.id JOIN Servicios s on sp.idServicio =s.id
GROUP BY p.id GROUP BY p.id
LIMIT 10 OFFSET {pag*10} LIMIT 10 OFFSET {pag * 10}
"""; """;
var ret = Singleton.Context.Database.SqlQuery<PropiedadesAdmin>(sqlq); var ret = Singleton.Context.Database.SqlQuery<PropiedadesAdmin>(sqlq);
return ret; return ret;
} }
public IQueryable<PropiedadesAdmin> ObtenerPropiedesPorHabitacionesPaginado(int cantidadHabitaciones, int pag) { public IQueryable<PropiedadesAdmin> ObtenerPropiedesPorHabitacionesPaginado(int cantidadHabitaciones, int pag)
{
FormattableString sqlq = $""" FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo, SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto, ep.descripcion AS Estado, GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto, ep.descripcion AS Estado,
p.iddivisa as Iddivisa p.iddivisa as Iddivisa
FROM Propiedades p FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = ep.id JOIN EstadoPropiedad ep ON p.idestado = ep.id
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad
JOIN Servicios s on sp.idServicio =s.id JOIN Servicios s on sp.idServicio =s.id
WHERE p.canthabitaciones = {cantidadHabitaciones} WHERE p.canthabitaciones = {cantidadHabitaciones}
GROUP BY p.id GROUP BY p.id
LIMIT 10 OFFSET {pag*10} LIMIT 10 OFFSET {pag * 10}
"""; """;
var ret = Singleton.Context.Database.SqlQuery<PropiedadesAdmin>(sqlq); var ret = Singleton.Context.Database.SqlQuery<PropiedadesAdmin>(sqlq);
return ret; return ret;
} }
public IQueryable<PropiedadesAdmin> ObtenerPropiedesPorTipoPaginado(int tipoPropiedad, int pag) { public IQueryable<PropiedadesAdmin> ObtenerPropiedesPorTipoPaginado(int tipoPropiedad, int pag)
{
FormattableString sqlq = $""" FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo, SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto, ep.descripcion AS Estado, GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto, ep.descripcion AS Estado,
p.iddivisa as Iddivisa p.iddivisa as Iddivisa
FROM Propiedades p FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = ep.id JOIN EstadoPropiedad ep ON p.idestado = ep.id
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad
JOIN Servicios s on sp.idServicio =s.id JOIN Servicios s on sp.idServicio =s.id
WHERE p.idtipropiedad = {tipoPropiedad} WHERE p.idtipropiedad = {tipoPropiedad}
GROUP BY p.id GROUP BY p.id
LIMIT 10 OFFSET {pag*10} LIMIT 10 OFFSET {pag * 10}
"""; """;
var ret = Singleton.Context.Database.SqlQuery<PropiedadesAdmin>(sqlq); var ret = Singleton.Context.Database.SqlQuery<PropiedadesAdmin>(sqlq);
return ret; return ret;
} }
public IQueryable<PropiedadesAdmin> ObtenerPropiedesPorHabitaciones_TipoPaginado(int cantidadHabitaciones, int tipoPropiedad, int pag) { public IQueryable<PropiedadesAdmin> ObtenerPropiedesPorHabitaciones_TipoPaginado(int cantidadHabitaciones, int tipoPropiedad, int pag)
{
FormattableString sqlq = $""" FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo, SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto, ep.descripcion AS Estado, GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto, ep.descripcion AS Estado,
p.iddivisa as Iddivisa p.iddivisa as Iddivisa
FROM Propiedades p FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = ep.id JOIN EstadoPropiedad ep ON p.idestado = ep.id
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad
JOIN Servicios s on sp.idServicio =s.id JOIN Servicios s on sp.idServicio =s.id
WHERE p.canthabitaciones = {cantidadHabitaciones} AND p.idtipropiedad = {tipoPropiedad} WHERE p.canthabitaciones = {cantidadHabitaciones} AND p.idtipropiedad = {tipoPropiedad}
GROUP BY p.id GROUP BY p.id
LIMIT 10 OFFSET {pag*10} LIMIT 10 OFFSET {pag * 10}
"""; """;
var ret = Singleton.Context.Database.SqlQuery<PropiedadesAdmin>(sqlq); var ret = Singleton.Context.Database.SqlQuery<PropiedadesAdmin>(sqlq);
return ret; return ret;
} }
public IQueryable<PropiedadesAdmin> ObtenerPropiedesPorServiciosPaginado(string servicios, int pag) { public IQueryable<PropiedadesAdmin> ObtenerPropiedesPorServiciosPaginado(string servicios, int pag)
{
string serviciosEscapados = string.Join(",", servicios.Split(',').Select(s => s.Trim())); string serviciosEscapados = string.Join(",", servicios.Split(',').Select(s => s.Trim()));
FormattableString sqlq = $""" FormattableString sqlq = $"""
@@ -464,9 +501,9 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
p.iddivisa as Iddivisa p.iddivisa as Iddivisa
FROM Propiedades p FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = ep.id JOIN EstadoPropiedad ep ON p.idestado = ep.id
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad
JOIN Servicios s on sp.idServicio =s.id JOIN Servicios s on sp.idServicio =s.id
WHERE EXISTS ( WHERE EXISTS (
SELECT 1 SELECT 1
FROM Servicio_Propiedad sp2 FROM Servicio_Propiedad sp2
@@ -474,15 +511,16 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
WHERE sp2.idPropiedad = p.id WHERE sp2.idPropiedad = p.id
AND FIND_IN_SET(s2.descripcion, {serviciosEscapados}) AND FIND_IN_SET(s2.descripcion, {serviciosEscapados})
) )
GROUP BY p.id GROUP BY p.id
LIMIT 10 OFFSET {pag*10} LIMIT 10 OFFSET {pag * 10}
"""; """;
var ret = Singleton.Context.Database.SqlQuery<PropiedadesAdmin>(sqlq); var ret = Singleton.Context.Database.SqlQuery<PropiedadesAdmin>(sqlq);
return ret; return ret;
} }
public IQueryable<PropiedadesAdmin> ObtenerPropiedesPorHabitaciones_Servicios_Paginado(int cantidadHabitaciones, string servicios, int pag) { public IQueryable<PropiedadesAdmin> ObtenerPropiedesPorHabitaciones_Servicios_Paginado(int cantidadHabitaciones, string servicios, int pag)
{
string serviciosEscapados = string.Join(",", servicios.Split(',').Select(s => s.Trim())); string serviciosEscapados = string.Join(",", servicios.Split(',').Select(s => s.Trim()));
FormattableString sqlq = $""" FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo, SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
@@ -490,9 +528,9 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
p.iddivisa as Iddivisa p.iddivisa as Iddivisa
FROM Propiedades p FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = ep.id JOIN EstadoPropiedad ep ON p.idestado = ep.id
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad
JOIN Servicios s on sp.idServicio =s.id JOIN Servicios s on sp.idServicio =s.id
WHERE p.canthabitaciones = {cantidadHabitaciones} WHERE p.canthabitaciones = {cantidadHabitaciones}
AND EXISTS ( AND EXISTS (
SELECT 1 SELECT 1
@@ -502,14 +540,15 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
AND FIND_IN_SET(s2.descripcion, {serviciosEscapados}) AND FIND_IN_SET(s2.descripcion, {serviciosEscapados})
) )
GROUP BY p.id GROUP BY p.id
LIMIT 10 OFFSET {pag*10} LIMIT 10 OFFSET {pag * 10}
"""; """;
var ret = Singleton.Context.Database.SqlQuery<PropiedadesAdmin>(sqlq); var ret = Singleton.Context.Database.SqlQuery<PropiedadesAdmin>(sqlq);
return ret; return ret;
} }
public IQueryable<PropiedadesAdmin> ObtenerPropiedesPorTipo_Servicios_Paginado(int tipoPropiedad, string servicios, int pag) { public IQueryable<PropiedadesAdmin> ObtenerPropiedesPorTipo_Servicios_Paginado(int tipoPropiedad, string servicios, int pag)
{
string serviciosEscapados = string.Join(",", servicios.Split(',').Select(s => s.Trim())); string serviciosEscapados = string.Join(",", servicios.Split(',').Select(s => s.Trim()));
FormattableString sqlq = $""" FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo, SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
@@ -517,9 +556,9 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
p.iddivisa as Iddivisa p.iddivisa as Iddivisa
FROM Propiedades p FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = ep.id JOIN EstadoPropiedad ep ON p.idestado = ep.id
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad
JOIN Servicios s on sp.idServicio =s.id JOIN Servicios s on sp.idServicio =s.id
WHERE p.idtipropiedad = {tipoPropiedad} WHERE p.idtipropiedad = {tipoPropiedad}
AND EXISTS ( AND EXISTS (
SELECT 1 SELECT 1
@@ -529,14 +568,15 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
AND FIND_IN_SET(s2.descripcion, {serviciosEscapados}) AND FIND_IN_SET(s2.descripcion, {serviciosEscapados})
) )
GROUP BY p.id GROUP BY p.id
LIMIT 10 OFFSET {pag*10} LIMIT 10 OFFSET {pag * 10}
"""; """;
var ret = Singleton.Context.Database.SqlQuery<PropiedadesAdmin>(sqlq); var ret = Singleton.Context.Database.SqlQuery<PropiedadesAdmin>(sqlq);
return ret; return ret;
} }
public IQueryable<PropiedadesAdmin> ObtenerPropiedesPorHabitaciones_Tipo_Servicios_Paginado(int habitaciones, int tipo, string servicios, int pag) { public IQueryable<PropiedadesAdmin> ObtenerPropiedesPorHabitaciones_Tipo_Servicios_Paginado(int habitaciones, int tipo, string servicios, int pag)
{
string serviciosEscapados = string.Join(",", servicios.Split(',').Select(s => s.Trim())); string serviciosEscapados = string.Join(",", servicios.Split(',').Select(s => s.Trim()));
FormattableString sqlq = $""" FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo, SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
@@ -544,9 +584,9 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
p.iddivisa as Iddivisa p.iddivisa as Iddivisa
FROM Propiedades p FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = ep.id JOIN EstadoPropiedad ep ON p.idestado = ep.id
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad JOIN Servicio_Propiedad sp on p.id =sp.idPropiedad
JOIN Servicios s on sp.idServicio =s.id JOIN Servicios s on sp.idServicio =s.id
WHERE p.canthabitaciones = {habitaciones} AND p.idtipropiedad = {tipo} WHERE p.canthabitaciones = {habitaciones} AND p.idtipropiedad = {tipo}
AND EXISTS ( AND EXISTS (
SELECT 1 SELECT 1
@@ -556,30 +596,35 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
AND FIND_IN_SET(s2.descripcion, {serviciosEscapados}) AND FIND_IN_SET(s2.descripcion, {serviciosEscapados})
) )
GROUP BY p.id GROUP BY p.id
LIMIT 10 OFFSET {pag*10} LIMIT 10 OFFSET {pag * 10}
"""; """;
var ret = Singleton.Context.Database.SqlQuery<PropiedadesAdmin>(sqlq); var ret = Singleton.Context.Database.SqlQuery<PropiedadesAdmin>(sqlq);
return ret; return ret;
} }
public int CuantasPaginas(int estado = 0) { public int CuantasPaginas(int estado = 0)
{
var con = Context; var con = Context;
double inter; double inter;
int ret; int ret;
if (estado == 0){ if (estado == 0)
inter = con.Propiedades.Count()/10.0; {
} else { inter = con.Propiedades.Count() / 10.0;
inter = con.Propiedades.Where(x=>x.Idestado == estado).Count(); }
else
{
inter = con.Propiedades.Where(x => x.Idestado == estado).Count();
} }
if (inter == 0.00) return 0; if (inter == 0.00) return 0;
ret = (int)Math.Ceiling(inter); ret = (int)Math.Ceiling(inter);
return ret; return ret;
} }
public int CuantasPaginasBusqueda(int habitaciones, string servicios, int tipoPropiedad, int estado) { public int CuantasPaginasBusqueda(int habitaciones, string servicios, int tipoPropiedad, int estado)
{
int registrosPorPagina = 10; int registrosPorPagina = 10;
var query = Context.Propiedades var query = Context.Propiedades
@@ -588,19 +633,23 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
.Include(p => p.IdServicios) .Include(p => p.IdServicios)
.AsQueryable(); .AsQueryable();
if (habitaciones > 0) { if (habitaciones > 0)
{
query = query.Where(p => p.Canthabitaciones == habitaciones); query = query.Where(p => p.Canthabitaciones == habitaciones);
} }
if (estado > 0){ if (estado > 0)
query = query.Where(x=>x.Idestado == estado); {
query = query.Where(x => x.Idestado == estado);
} }
if (tipoPropiedad > 0) { if (tipoPropiedad > 0)
{
query = query.Where(p => p.Idtipropiedad == tipoPropiedad); query = query.Where(p => p.Idtipropiedad == tipoPropiedad);
} }
if (!string.IsNullOrWhiteSpace(servicios)) { if (!string.IsNullOrWhiteSpace(servicios))
{
var listaServicios = servicios.Split(',').Select(s => s.Trim()).ToList(); var listaServicios = servicios.Split(',').Select(s => s.Trim()).ToList();
query = query.Where(p => query = query.Where(p =>
p.IdServicios.Any(sp => p.IdServicios.Any(sp =>
@@ -612,26 +661,29 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
return (int)Math.Ceiling((double)totalRegistros / registrosPorPagina); return (int)Math.Ceiling((double)totalRegistros / registrosPorPagina);
} }
public IQueryable<Propiedade>? ObtenerPropiedadesEnVenta(int pag){ public IQueryable<Propiedade>? ObtenerPropiedadesEnVenta(int pag)
{
var con = Context; var con = Context;
var props = con.Propiedades.Include(x=>x.IdServicios).Include(x=>x.IddivisaNavigation) var props = con.Propiedades.Include(x => x.IdServicios).Include(x => x.IddivisaNavigation)
.Include(c=>c.IdtipropiedadNavigation) .Include(c => c.IdtipropiedadNavigation)
.Where(x=>x.Idestado ==4 && !x.Venta.Any(x=>x.Idestado ==2)) .Where(x => x.Idestado == 4 && !x.Venta.Any(x => x.Idestado == 2))
.Skip(pag*10).Take(10); .Skip(pag * 10).Take(10);
return props; return props;
} }
public int ObtenerPaginasDePropiedadesEnVenta(){ public int ObtenerPaginasDePropiedadesEnVenta()
{
var con = Context; var con = Context;
var props = con.Propiedades.Where(x=>x.Idestado ==4 && !x.Venta.Any(x=>x.Idestado ==2)).Count(); var props = con.Propiedades.Where(x => x.Idestado == 4 && !x.Venta.Any(x => x.Idestado == 2)).Count();
return (int)Math.Ceiling((double)props / 10); return (int)Math.Ceiling((double)props / 10);
} }
public IQueryable<Propiedade> ObtenerPropiedadesAVentaPorDni(long dni) { public IQueryable<Propiedade> ObtenerPropiedadesAVentaPorDni(long dni)
{
var con = Context; var con = Context;
var l = con.Propiedades.Include(x=>x.IdServicios).Include(x=>x.IdtipropiedadNavigation) var l = con.Propiedades.Include(x => x.IdServicios).Include(x => x.IdtipropiedadNavigation)
.Where(x=>x.Dnipropietario == dni && x.Idestado ==4); .Where(x => x.Dnipropietario == dni && x.Idestado == 4);
return l; return l;
} }
} }