implementado hasta el ultimo paso antes de hacer la tercera notificacion

This commit is contained in:
2025-01-08 02:53:31 -03:00
parent 9993e427e0
commit cf07c51eb1
18 changed files with 482 additions and 43 deletions

View File

@@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore;
namespace Modelo;
public class RepositorioContratos: RepositorioBase<RepositorioContratos> {
public IQueryable<Contrato>? ObtenerContratosPorEmailInquilino(string email){
public IQueryable<Contrato>? ObtenerContratosPorEmailInquilino(string email) {
var con = Context;
try{
var listcont = con.Contratos.Where(x=>x.DniinquilinoNavigation.Email == email);
@@ -12,4 +12,47 @@ public class RepositorioContratos: RepositorioBase<RepositorioContratos> {
return null;
}
}
public bool CargaPrecontrato(Contrato? c = null, Notificacione? n = null) {
if (c == null || c.Habilitado == 1) return false;
if (n == null) return false;
var con = Context;
var prop = con.Propiedades.FirstOrDefault(x=>x.Id==c.Idpropiedad);
if (prop == null) return false;
prop.Idestado = 2;
c.Id = con.Contratos.Max(x=>x.Id)+1;
c.Monto = prop.Monto;
con.Contratos.Add(c);
con.Notificaciones.Add(n);
return Guardar(con);
}
public bool CargaGarantes(List<Garante> gar, string emailInquilino, int idpropiedad) {
var con = Context;
Contrato? contr = con.Contratos.Include(x=>x.DniinquilinoNavigation)
.FirstOrDefault(x=>x.Idpropiedad == idpropiedad &&
x.DniinquilinoNavigation.Email == emailInquilino &&
x.Habilitado == 0);
if (contr == null) return false;
foreach (var i in gar) {
i.Id = con.Garantes.Max(x=>x.Id)+1;
contr.Idgarantes.Add(i);
}
return Guardar(con);
}
public int CantidadGarantesEncontrato(string emailInquilino, int idpropiedad) {
var con = Context;
Contrato? contr = con.Contratos.Include(x=>x.DniinquilinoNavigation)
.FirstOrDefault(x=>x.Idpropiedad == idpropiedad &&
x.DniinquilinoNavigation.Email == emailInquilino &&
x.Habilitado == 0);
if (contr == null) return 0;
return contr.Cantgarantemin;
}
}

View File

@@ -32,4 +32,18 @@ public class RepositorioGrupos: RepositorioBase<RepositorioGrupos> {
});
return grupos;
}
public bool CheckGrupos(string token, string grupo){
var con = Context;
Cliente? cli = con.Clientes.Include(x=>x.Idgrupos).FirstOrDefault(x=>x.Token == token);
if (cli == null) return false;
Grupo? gru = con.Grupos.FirstOrDefault(x=>x.Nombre == grupo);
if (gru == null) return false;
if (cli.Idgrupos.Contains(gru)) return true;
return false;
}
}

View File

@@ -1,3 +1,4 @@
using Entidades;
using Entidades.Dto;
using Microsoft.EntityFrameworkCore;
@@ -15,5 +16,15 @@ public class RepositorioInquilinos: RepositorioBase<RepositorioInquilinos> {
return Context.Database.SqlQuery<InquilinoDto>(sqlq);
}
public Cliente? ObtenerInquilinoPorEmail(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;
Grupo? gru = cli.Idgrupos.FirstOrDefault(x=>x.Id == 2);
if (gru == null) return null;
return cli;
}
}

View File

@@ -3,6 +3,7 @@ using System.Text;
using Entidades.Dto;
using Entidades;
using Microsoft.EntityFrameworkCore;
using System.Collections.Concurrent;
namespace Modelo;
@@ -20,7 +21,18 @@ public class RepositorioNotificaciones : RepositorioBase<RepositorioNotificacion
public bool AltaNotificacion(Notificacione n) {
var con = Context;
con.Notificaciones.Add(n);
return Guardar(con);
}
public IQueryable<Notificacione> ObtenerNotificacionesDeUsuario(long dni) {
var con = Context;
var notis = con.Notificaciones
.Include(x=>x.IdpropiedadNavigation)
.Include(x=>x.DniremitenteNavigation)
.Where(x => x.Dnicliente == dni);
return notis;
}
}

View File

@@ -34,6 +34,7 @@ public class RepositorioPermisos: RepositorioBase<RepositorioPermisos> {
/////////////////////////////////////////////////////////////////
//Esto esta comentado porque antes pasaba el string del path de la url, es una mala idea a muchos niveles
// abajo un comentario viejo mio
/////////////////////////////////////////////////////////////////
//me inspiré y hice un regex pero si eliminaba los primeros 8(?) caracteres del string era lo mismo
//Match match = Regex.Match(path, @"^/accion/(\d+)$");

View File

@@ -27,14 +27,9 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
}
public Propiedade? ObtenerPropiedadPorId(int Id) {
var con = Context;
Propiedade? prop = con.Propiedades.Include(x=>x.DnipropietarioNavigation).FirstOrDefault(x=>x.Id == 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;
}

View File

@@ -25,9 +25,10 @@ public class RepositorioPropietario: RepositorioBase<RepositorioPropietario> {
public Cliente? ObtenerPropietarioPorEmail(string email){
var con = Context;
Cliente? cli = con.Clientes.FirstOrDefault(x=>x.Email == email);
Cliente? cli = con.Clientes.Include(x=>x.Idgrupos).FirstOrDefault(x=>x.Email == email);
if (cli == null|| cli.Dni == 0) return null;
if (cli.Dni == 0 || cli == null) return null;
var grupo = cli.Idgrupos.FirstOrDefault(x=>x.Id == 1);
if (grupo == null) return null;
return cli;
}
}

View File

@@ -88,10 +88,6 @@ public class RepositorioUsuarios: RepositorioBase<RepositorioUsuarios> {
var usu = Context.Clientes.FirstOrDefault(x => x.Email == email);
if (usu == null) return false;
#if DEBUG
//Console.WriteLine(token + "\n" +usu.Token);
#endif
return usu.Token == token;
}