Format code with proper spacing and brackets
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user