feat: implementado todo lo de auditoria tocaria testearlo nomás
This commit is contained in:
@@ -117,8 +117,11 @@ public class AdminController: ControllerBase
|
||||
if (validacion1 == false) return Unauthorized();
|
||||
|
||||
if (id <= 0) return BadRequest(new { message = "Falto indicar id Propiedad"});
|
||||
|
||||
Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
||||
if (cli == null) return Unauthorized();
|
||||
|
||||
var ret = RepositorioPropiedades.Singleton.BajaPropiedad(id);
|
||||
var ret = RepositorioPropiedades.Singleton.BajaPropiedad(id, cli.Dni);
|
||||
return ret ?
|
||||
Ok(new {message = "Se cambio el estado de la propiedad"}): BadRequest(new { message = "No se pudo dar de baja"});
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ public class ContratoController: ControllerBase {
|
||||
Fecha = c.Fecha,
|
||||
};
|
||||
|
||||
bool ret = RepositorioCanons.Singleton.SetRecibo(c, re);
|
||||
bool ret = RepositorioCanons.Singleton.SetRecibo(c, re, cli.Dni);
|
||||
return ret ?
|
||||
Ok(new { message = "Se guardo correctamente"}):BadRequest(new { message = "No se pudo guardar"});
|
||||
|
||||
@@ -114,7 +114,7 @@ public class ContratoController: ControllerBase {
|
||||
Fecha = c.Fecha,
|
||||
};
|
||||
|
||||
bool ret = RepositorioCanons.Singleton.SetRecibo(c, re);
|
||||
bool ret = RepositorioCanons.Singleton.SetRecibo(c, re, cli.Dni);
|
||||
return ret ?
|
||||
Ok(new { message = "Se guardo correctamente"}):BadRequest(new { message = "No se pudo guardar"});
|
||||
}
|
||||
@@ -133,7 +133,7 @@ public class ContratoController: ControllerBase {
|
||||
if (cont == null) return BadRequest(new { message = "no hay un contrato por esa id"});
|
||||
if (cli.Dni != cont.Dnipropietario) return BadRequest(new {message = "No sos el propietario o intenta volviendote a logear"});
|
||||
|
||||
var ret = RepositorioCanons.Singleton.CrearCanons(dto.aumento, dto.idcontrato);
|
||||
var ret = RepositorioCanons.Singleton.CrearCanons(dto.aumento, dto.idcontrato, cli.Dni);
|
||||
return ret ?
|
||||
Ok(new { message = "Se crearon los canons correctamente"}):BadRequest(new { message = "No se pudo guardar"});
|
||||
}
|
||||
@@ -352,14 +352,14 @@ public class ContratoController: ControllerBase {
|
||||
|
||||
bool ret;
|
||||
if (dto.TieneOpcionVenta==false){
|
||||
ret = RepositorioContratos.Singleton.CargaPrecontrato(precontrato, notificacion);
|
||||
ret = RepositorioContratos.Singleton.CargaPrecontrato(cli.Dni, precontrato, notificacion);
|
||||
} else {
|
||||
Venta v = new Venta{
|
||||
Idestado = 1,
|
||||
Iddivisa = dto.iddivisa,
|
||||
Monto = dto.MontoOpcion,
|
||||
};
|
||||
ret = RepositorioContratos.Singleton.CargaPrecontratoOpcionVenta(precontrato, notificacion, v);
|
||||
ret = RepositorioContratos.Singleton.CargaPrecontratoOpcionVenta(precontrato, notificacion, v, cli.Dni);
|
||||
}
|
||||
|
||||
if (ret) {
|
||||
@@ -411,7 +411,7 @@ public class ContratoController: ControllerBase {
|
||||
var contr = RepositorioContratos.Singleton.ObtenerContrato(dto.EmailInquilino, dto.Idpropiedad);
|
||||
if (contr == null) return BadRequest(new { message = "No existe el contrato o ya fue activado"});
|
||||
|
||||
var ret = RepositorioContratos.Singleton.CargaGarantes(gar, dto.EmailInquilino, dto.Idpropiedad);
|
||||
var ret = RepositorioContratos.Singleton.CargaGarantes(gar, dto.EmailInquilino, dto.Idpropiedad, cli.Dni);
|
||||
if (ret) {
|
||||
Console.WriteLine(dto.fecha);
|
||||
RepositorioNotificaciones.Singleton.MarcarComoLeido(cli.Dni, dto.fecha);
|
||||
@@ -440,6 +440,9 @@ public class ContratoController: ControllerBase {
|
||||
var validacion2 = ValidarCancelarDto(dto);
|
||||
if (validacion2 != "") return BadRequest(new {message = validacion2});
|
||||
|
||||
Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
||||
if (cli==null) return Unauthorized();
|
||||
|
||||
Cliente? pro = RepositorioPropietario.Singleton.ObtenerPropietarioPorEmail(dto.EmailPropietario);
|
||||
if (pro == null) return BadRequest(new {message = "No Existe Usuario con ese email"});
|
||||
if (pro.Token != Auth) return BadRequest(new {message = "El token de auth no corresponde al token el usuario propietario"});
|
||||
@@ -451,10 +454,10 @@ public class ContratoController: ControllerBase {
|
||||
var inq = RepositorioInquilinos.Singleton.ObtenerInquilinoPorEmail(dto.EmailInquilino);
|
||||
if (inq == null) return BadRequest(new {message = "No hay un inquilino por ese email"});
|
||||
|
||||
var ret = RepositorioContratos.Singleton.CancelarPrecontrato(dto.EmailInquilino, dto.idpropiedad);
|
||||
var ret = RepositorioContratos.Singleton.CancelarPrecontrato(dto.EmailInquilino, dto.idpropiedad, cli.Dni);
|
||||
if (ret) {
|
||||
prop.Idestado = 1;
|
||||
ret = RepositorioPropiedades.Singleton.PatchPropiedad(prop);
|
||||
ret = RepositorioPropiedades.Singleton.PatchPropiedad(prop, pro.Dni);
|
||||
if (ret){
|
||||
RepositorioNotificaciones.Singleton.MarcarComoLeido(pro.Dni, dto.fecha);
|
||||
var noti = new NotificacioneBuilder()
|
||||
@@ -549,7 +552,7 @@ public class ContratoController: ControllerBase {
|
||||
bool ret = await subirContrato(contrato, nuevoNombreArchivo);
|
||||
if(ret == false) return BadRequest(new {message = "No se pudo subir el archivo"});
|
||||
|
||||
ret = RepositorioContratos.Singleton.AddUrl(contr.Id, nuevoNombreArchivo);
|
||||
ret = RepositorioContratos.Singleton.AddUrl(contr.Id, nuevoNombreArchivo, cli.Dni);
|
||||
if (ret == false) return BadRequest(new { message = "No se pudo guardar la url del contrato" });
|
||||
|
||||
var noti = new NotificacioneBuilder()
|
||||
@@ -670,7 +673,7 @@ public class ContratoController: ControllerBase {
|
||||
if (cli == null) return BadRequest(new { message = "No hay un cliente por ese token"});
|
||||
if (cli.Dni != contr.Dniinquilino) return BadRequest(new { message = "El token no corresponde con el del inquilino"});
|
||||
|
||||
bool ret = RepositorioContratos.Singleton.AceptarContrato(dto.Idcontrato);
|
||||
bool ret = RepositorioContratos.Singleton.AceptarContrato(dto.Idcontrato, cli.Dni);
|
||||
if (ret == false) return BadRequest(new { message ="fallo al aceptar el contrato"});
|
||||
|
||||
RepositorioNotificaciones.Singleton.MarcarComoLeido(cli.Dni, dto.Fecha);
|
||||
@@ -707,7 +710,7 @@ public class ContratoController: ControllerBase {
|
||||
if (cli == null) return BadRequest(new { message = "No hay un cliente por ese token"});
|
||||
if (cli.Dni != contr.Dniinquilino) return BadRequest(new { message = "El token no corresponde con el del inquilino"});
|
||||
|
||||
var ret = RepositorioContratos.Singleton.CancelarPrecontrato(dto.Idcontrato);
|
||||
var ret = RepositorioContratos.Singleton.CancelarPrecontrato(dto.Idcontrato, cli.Dni);
|
||||
if (ret == false) return BadRequest(new {message = "Fallo al intentar cancelar el precontrato"});
|
||||
|
||||
RepositorioNotificaciones.Singleton.MarcarComoLeido(cli.Dni, dto.Fecha);
|
||||
|
||||
@@ -53,6 +53,9 @@ public class DefectoController: ControllerBase {
|
||||
var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Inquilino");
|
||||
if (validacion1 == false) return Unauthorized();
|
||||
|
||||
Cliente? cli =RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
||||
if (cli == null) return Unauthorized();
|
||||
|
||||
string r = ValidarDto(data);
|
||||
if (r != "") return BadRequest(new { message = r });
|
||||
|
||||
@@ -65,7 +68,7 @@ public class DefectoController: ControllerBase {
|
||||
Idestado = 1,
|
||||
|
||||
};
|
||||
var b = RepositorioDefectos.Singleton.AltaDefecto(defecto);
|
||||
var b = RepositorioDefectos.Singleton.AltaDefecto(defecto, cli.Dni);
|
||||
return b ?Ok(new { message = "Se cargo el Defecto en el sistema"}):BadRequest(new { message ="No se pudo cargar el defecto en el sistema"});
|
||||
}
|
||||
|
||||
@@ -86,8 +89,11 @@ public class DefectoController: ControllerBase {
|
||||
var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Propietario");
|
||||
if (validacion1 == false) return Unauthorized();
|
||||
|
||||
Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
||||
if (cli==null) return Unauthorized();
|
||||
|
||||
if (iddefecto<=0) return BadRequest(new { message = "No hay canones con id 0 o menor"});
|
||||
bool ret = RepositorioDefectos.Singleton.MarcarPago(iddefecto);
|
||||
bool ret = RepositorioDefectos.Singleton.MarcarPago(iddefecto, cli.Dni);
|
||||
|
||||
return ret ?
|
||||
Ok(new { message = "Se marco como pagado" }):BadRequest(new { message = "Fallo el acceso a la base de datos o no se encontro el defecto" });
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
#if DEBUG
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Modelo;
|
||||
namespace AlquilaFacil.Controllers;
|
||||
|
||||
[ApiController]
|
||||
public class GruposController: ControllerBase {
|
||||
[HttpPost("api/admin/grupos")]
|
||||
public IActionResult CrearGrupo([FromBody] AdminGrupo grupo, [FromHeader(Name = "Auth")] string Auth) {
|
||||
if (!string.IsNullOrEmpty(Auth)) return BadRequest();
|
||||
var ret2 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 10);
|
||||
if (ret2 == false) return BadRequest(ret2);
|
||||
|
||||
if (String.IsNullOrEmpty(grupo.descripcion)) return BadRequest();
|
||||
|
||||
bool ret = RepositorioGrupos.Singleton.CrearGrupo(grupo.descripcion);
|
||||
return (ret) ? Ok(ret) : BadRequest();
|
||||
}
|
||||
}
|
||||
|
||||
public record AdminGrupo(string descripcion);
|
||||
#endif
|
||||
@@ -1,23 +0,0 @@
|
||||
#if DEBUG
|
||||
using System.Text.Json;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Modelo;
|
||||
namespace AlquilaFacil.Controllers;
|
||||
|
||||
[ApiController]
|
||||
public class PermisosController: ControllerBase {
|
||||
[HttpPost("api/admin/permisos")]
|
||||
public IActionResult CrearPermisos([FromBody] AdminPermiso permiso, [FromHeader(Name = "Auth")] string Auth) {
|
||||
if (!string.IsNullOrEmpty(Auth)) return BadRequest();
|
||||
var ret2 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 11);
|
||||
if (ret2 == false) return BadRequest(ret2);
|
||||
|
||||
if (String.IsNullOrEmpty(permiso.descripcion)) return BadRequest();
|
||||
|
||||
bool ret = RepositorioPermisos.Singleton.CrearPermiso(permiso.descripcion);
|
||||
return (ret) ? Ok(ret) : BadRequest();
|
||||
}
|
||||
}
|
||||
|
||||
public record AdminPermiso(string descripcion);
|
||||
#endif
|
||||
@@ -146,7 +146,7 @@ public class PropiedadesController: ControllerBase {
|
||||
Iddivisa = propiedad.Iddivisa,
|
||||
};
|
||||
|
||||
bool ret = RepositorioPropiedades.Singleton.PatchPropiedad(Prop);
|
||||
bool ret = RepositorioPropiedades.Singleton.PatchPropiedad(Prop, cli.Dni);
|
||||
return (ret)?
|
||||
Ok(new {message = "Fue modificado Correctamente"}):
|
||||
BadRequest(new {message = "Fallo al modificar la base de datos"});
|
||||
@@ -203,11 +203,13 @@ public class PropiedadesController: ControllerBase {
|
||||
if (servicio.idServicios.Count() < 1) return BadRequest(new {message ="Falta añadir servicios"});
|
||||
if (servicio.idServicios.Any(x => x<= 0)) return BadRequest(new {message ="No tienen haber ids negativas o cero de servicio"});
|
||||
|
||||
Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
||||
|
||||
var serv = RepositorioServicios.Singleton.ObtenerServiciosPorPropiedad(servicio.propiedadid);
|
||||
|
||||
var repetidos = serv.Intersect(servicio.idServicios);
|
||||
|
||||
bool ret = RepositorioPropiedades.Singleton.BajaServiciosAPropiedad(servicio.propiedadid, servicio.idServicios);
|
||||
bool ret = RepositorioPropiedades.Singleton.BajaServiciosAPropiedad(servicio.propiedadid, servicio.idServicios, cli.Dni);
|
||||
|
||||
return ret ?
|
||||
Ok(new {message ="Se Eliminaron los servicios seleccionados de la propiedad"}) : BadRequest(new {message ="Fallo al eliminarse los servicios de la propiedad"});
|
||||
|
||||
@@ -36,7 +36,7 @@ public class VentaController:ControllerBase {
|
||||
venta.Idpropiedad = cont.Idpropiedad;
|
||||
venta.Fechainicio = DateTime.Now;
|
||||
|
||||
bool ret = RepositorioVentas.Singleton.PatchVenta(venta);
|
||||
bool ret = RepositorioVentas.Singleton.PatchVenta(venta, cli.Dni);
|
||||
|
||||
return ret?
|
||||
Ok(new { message = "Se ejercio la opcion de venta"}):
|
||||
@@ -72,7 +72,7 @@ public class VentaController:ControllerBase {
|
||||
bool ret = await subirContrato(file, nuevoNombreArchivo);
|
||||
if(ret == false) return BadRequest(new {message = "No se pudo subir el archivo"});
|
||||
|
||||
ret = RepositorioVentas.Singleton.SetUrlRecibo(venta.Id, nuevoNombreArchivo);
|
||||
ret = RepositorioVentas.Singleton.SetUrlRecibo(venta.Id, nuevoNombreArchivo, cli.Dni);
|
||||
if (ret == false) return BadRequest(new { message = "no se pudo guardar el nombre del archivo subido"});
|
||||
|
||||
return Ok(new { message = "Se Subio el Recibo"});
|
||||
|
||||
98
Modelo/Facade/AuditoriaFacade.cs
Normal file
98
Modelo/Facade/AuditoriaFacade.cs
Normal file
@@ -0,0 +1,98 @@
|
||||
using Entidades;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace Modelo.Facade;
|
||||
public class AuditoriaFacade {
|
||||
private readonly AlquilaFacilContext _context;
|
||||
private readonly FiltroCambios _filtradoDeCambios=new();
|
||||
private readonly ValidadorDeCambios _validadorDeCambios=new();
|
||||
private readonly PersistenciaLog _persistenciaDeLog=new();
|
||||
|
||||
public AuditoriaFacade(AlquilaFacilContext context) {
|
||||
_context = context;
|
||||
}
|
||||
|
||||
public void GenerarLog(long dniUsuario, string v) {
|
||||
var cambios = _filtradoDeCambios.FiltrarCambios(_context.ChangeTracker.Entries());
|
||||
|
||||
var fechaActual = DateTime.Now;
|
||||
|
||||
var log = new Log{
|
||||
Fecha = fechaActual,
|
||||
Dniusuario = dniUsuario,
|
||||
Accion = v
|
||||
};
|
||||
|
||||
log.LogDetalles = ProcesarCambios(cambios, fechaActual, dniUsuario);
|
||||
|
||||
_persistenciaDeLog.GuardarLog(log, log.LogDetalles);
|
||||
}
|
||||
|
||||
private List<LogDetalle> ProcesarCambios(IEnumerable<Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry> cambios,
|
||||
DateTime fechaActual, long dniUsuario) {
|
||||
|
||||
var logDetalles = new List<LogDetalle>();
|
||||
foreach (var cambio in cambios) {
|
||||
var nombreTabla = cambio.Entity.GetType().Name;
|
||||
Console.WriteLine($"Entidad: {cambio.Entity.GetType().Name}, Estado: {cambio.State}");
|
||||
|
||||
switch (cambio.State) {
|
||||
case EntityState.Modified:
|
||||
foreach (var propiedad in cambio.OriginalValues.Properties) {
|
||||
if (propiedad.Name == "Token") break;
|
||||
var valorAnterior = cambio.OriginalValues[propiedad]?.ToString();
|
||||
var valorNuevo = cambio.CurrentValues[propiedad]?.ToString();
|
||||
|
||||
if (_validadorDeCambios.ValidarCambio(valorAnterior??"", valorNuevo??"")) {
|
||||
logDetalles.Add(new LogDetalle {
|
||||
Fecha = fechaActual,
|
||||
Dniusuario = dniUsuario,
|
||||
NombreTabla = nombreTabla,
|
||||
Columna = propiedad.Name,
|
||||
ValorAnterior = valorAnterior,
|
||||
ValorNuevo = valorNuevo
|
||||
});
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case EntityState.Added:
|
||||
foreach (var propiedad in cambio.CurrentValues.Properties) {
|
||||
if (propiedad.Name == "Token") break;
|
||||
var valorNuevo = cambio.CurrentValues[propiedad]?.ToString();
|
||||
|
||||
logDetalles.Add(new LogDetalle {
|
||||
Fecha = fechaActual,
|
||||
Dniusuario = dniUsuario,
|
||||
NombreTabla = nombreTabla,
|
||||
Columna = propiedad.Name,
|
||||
ValorAnterior = null,
|
||||
ValorNuevo = valorNuevo
|
||||
});
|
||||
}
|
||||
break;
|
||||
|
||||
case EntityState.Deleted:
|
||||
foreach (var propiedad in cambio.OriginalValues.Properties) {
|
||||
if (propiedad.Name == "Token") break;
|
||||
var valorAnterior = cambio.OriginalValues[propiedad]?.ToString();
|
||||
|
||||
logDetalles.Add(new LogDetalle {
|
||||
Fecha = fechaActual,
|
||||
Dniusuario = dniUsuario,
|
||||
NombreTabla = nombreTabla,
|
||||
Columna = propiedad.Name,
|
||||
ValorAnterior = valorAnterior,
|
||||
ValorNuevo = null
|
||||
});
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
Console.WriteLine($"Estado no manejado: {cambio.State}");
|
||||
break;
|
||||
}
|
||||
}
|
||||
return logDetalles;
|
||||
}
|
||||
}
|
||||
6
Modelo/Facade/FiltroCambios.cs
Normal file
6
Modelo/Facade/FiltroCambios.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace Modelo.Facade;
|
||||
public class FiltroCambios {
|
||||
public IEnumerable<Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry> FiltrarCambios(IEnumerable<Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry> cambios) {
|
||||
return cambios.Where(c => c.Entity.GetType().Name != "EntidadExcluida");
|
||||
}
|
||||
}
|
||||
11
Modelo/Facade/PersistenciaLog.cs
Normal file
11
Modelo/Facade/PersistenciaLog.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using Entidades;
|
||||
namespace Modelo.Facade;
|
||||
public class PersistenciaLog {
|
||||
private AlquilaFacilContext _context {get{return new AlquilaFacilContext();}}
|
||||
public void GuardarLog(Log log, IEnumerable<LogDetalle> detalles) {
|
||||
var con = _context;
|
||||
con.Logs.Add(log);
|
||||
con.LogDetalles.AddRange(detalles);
|
||||
con.SaveChanges();
|
||||
}
|
||||
}
|
||||
6
Modelo/Facade/ValidadorCambios.cs
Normal file
6
Modelo/Facade/ValidadorCambios.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace Modelo.Facade;
|
||||
public class ValidadorDeCambios {
|
||||
public bool ValidarCambio(string valorAnterior, string valorNuevo) {
|
||||
return !string.IsNullOrEmpty(valorNuevo) && valorAnterior != valorNuevo;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
using Entidades;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Modelo.Facade;
|
||||
|
||||
namespace Modelo;
|
||||
|
||||
@@ -9,6 +11,12 @@ public abstract class RepositorioBase<S>
|
||||
private static readonly S instance = new();
|
||||
public static S Singleton { get { return instance; }}
|
||||
|
||||
public void GenerarLog(AlquilaFacilContext context, long dni, string accion) {
|
||||
var Auditoria = new AuditoriaFacade(context);
|
||||
|
||||
Auditoria.GenerarLog(dni, accion??"");
|
||||
return;
|
||||
}
|
||||
public bool Guardar(AlquilaFacilContext context) {
|
||||
bool ret = false;
|
||||
try
|
||||
|
||||
@@ -27,7 +27,7 @@ public class RepositorioCanons: RepositorioBase<RepositorioCanons> {
|
||||
return cc;
|
||||
}
|
||||
|
||||
public bool SetRecibo(Canon c, Recibo re) {
|
||||
public bool SetRecibo(Canon c, Recibo re, long dni) {
|
||||
var con = Context;
|
||||
var cc = con.Canons
|
||||
.Include(x=>x.Idcontratos)
|
||||
@@ -51,10 +51,12 @@ public class RepositorioCanons: RepositorioBase<RepositorioCanons> {
|
||||
ccc.IdpropiedadNavigation.Idestado = 3;
|
||||
}
|
||||
|
||||
GenerarLog(con, dni, $"Set Recibo");
|
||||
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
public bool CrearCanons(decimal aumento, long idcontrato) {
|
||||
public bool CrearCanons(decimal aumento, long idcontrato, long dni) {
|
||||
var con = Context;
|
||||
|
||||
aumento/=100;
|
||||
@@ -86,6 +88,8 @@ public class RepositorioCanons: RepositorioBase<RepositorioCanons> {
|
||||
con.Canons.Add(c);
|
||||
cont.Idcanons.Add(c);
|
||||
}
|
||||
GenerarLog(con, dni, $"Crear Canones");
|
||||
|
||||
return Guardar(con);
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,7 @@ public class RepositorioContratos: RepositorioBase<RepositorioContratos> {
|
||||
}
|
||||
}
|
||||
|
||||
public bool CargaPrecontrato( Contrato? c = null, Notificacione? n = null) {
|
||||
public bool CargaPrecontrato(long dni, Contrato? c = null, Notificacione? n = null) {
|
||||
if (c == null || c.Habilitado == 1) return false;
|
||||
if (n == null) return false;
|
||||
var con = Context;
|
||||
@@ -29,10 +29,10 @@ public class RepositorioContratos: RepositorioBase<RepositorioContratos> {
|
||||
|
||||
con.Contratos.Add(c);
|
||||
con.Notificaciones.Add(n);
|
||||
|
||||
GenerarLog(con, dni, $"CargaPrecontrato");
|
||||
return Guardar(con);
|
||||
}
|
||||
public bool CargaGarantes(List<Garante> gar, string emailInquilino, int idpropiedad) {
|
||||
public bool CargaGarantes(List<Garante> gar, string emailInquilino, int idpropiedad, long dni) {
|
||||
var con = Context;
|
||||
Contrato? contr = con.Contratos.Include(x=>x.DniinquilinoNavigation).Include(x=>x.Idgarantes)
|
||||
.FirstOrDefault(x=>x.Idpropiedad == idpropiedad &&
|
||||
@@ -48,7 +48,7 @@ public class RepositorioContratos: RepositorioBase<RepositorioContratos> {
|
||||
con.Garantes.Add(i);
|
||||
contr.Idgarantes.Add(i);
|
||||
}
|
||||
|
||||
GenerarLog(con, dni, $"Alta Garantes");
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ public class RepositorioContratos: RepositorioBase<RepositorioContratos> {
|
||||
|
||||
}
|
||||
|
||||
public bool CancelarPrecontrato(string emailInquilino, int idpropiedad) {
|
||||
public bool CancelarPrecontrato(string emailInquilino, int idpropiedad, long dni) {
|
||||
var con = Context;
|
||||
Contrato? contr = con.Contratos.Include(x=>x.DniinquilinoNavigation)
|
||||
.FirstOrDefault(x=>x.Idpropiedad == idpropiedad &&
|
||||
@@ -86,6 +86,7 @@ public class RepositorioContratos: RepositorioBase<RepositorioContratos> {
|
||||
if (contr == null || contr.IdpropiedadNavigation == null) return false;
|
||||
contr.Cancelado = 1;
|
||||
contr.IdpropiedadNavigation.Idestado = 1;
|
||||
GenerarLog(con, dni, $"Cancelar Precontrato");
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
@@ -101,16 +102,17 @@ public class RepositorioContratos: RepositorioBase<RepositorioContratos> {
|
||||
return contr;
|
||||
}
|
||||
|
||||
public bool AddUrl(long id, string nuevoNombreArchivo) {
|
||||
public bool AddUrl(long id, string nuevoNombreArchivo, long dni) {
|
||||
var con = Context;
|
||||
Contrato? contrato = con.Contratos
|
||||
.FirstOrDefault(x=>x.Id == id);
|
||||
if (contrato == null) return false;
|
||||
contrato.UrlContrato = nuevoNombreArchivo;
|
||||
GenerarLog(con, dni, $"Añadido contrato");
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
public bool AceptarContrato(long idcontrato) {
|
||||
public bool AceptarContrato(long idcontrato, long dni) {
|
||||
var con = Context;
|
||||
Contrato? cont = con.Contratos
|
||||
.Include(x=>x.Idcanons)
|
||||
@@ -151,15 +153,18 @@ public class RepositorioContratos: RepositorioBase<RepositorioContratos> {
|
||||
cont.Idcanons.Add(can);
|
||||
}
|
||||
}
|
||||
GenerarLog(con, dni, $"Aceptado contrato");
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
public bool CancelarPrecontrato(long idcontrato) {
|
||||
public bool CancelarPrecontrato(long idcontrato, long dni) {
|
||||
var con = Context;
|
||||
Contrato? cont = con.Contratos.Include(x=>x.IdpropiedadNavigation).FirstOrDefault(x=>x.Id ==idcontrato && x.Habilitado ==0);
|
||||
if (cont == null|| cont.IdpropiedadNavigation==null) return false;
|
||||
cont.Cancelado = 1;
|
||||
cont.IdpropiedadNavigation.Idestado = 1;
|
||||
GenerarLog(con, dni, $"Cancelar Precontrato");
|
||||
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
@@ -214,7 +219,7 @@ public class RepositorioContratos: RepositorioBase<RepositorioContratos> {
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
public bool CargaPrecontratoOpcionVenta(Contrato c, Notificacione n, Venta v) {
|
||||
public bool CargaPrecontratoOpcionVenta(Contrato c, Notificacione n, Venta v, long dni) {
|
||||
if (c == null || c.Habilitado == 1) return false;
|
||||
if (n == null) return false;
|
||||
var con = Context;
|
||||
@@ -233,6 +238,7 @@ public class RepositorioContratos: RepositorioBase<RepositorioContratos> {
|
||||
con.Ventas.Add(v);
|
||||
con.Contratos.Add(c);
|
||||
con.Notificaciones.Add(n);
|
||||
GenerarLog(con, dni, $"Carga Precontrato con opcion venta");
|
||||
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
@@ -4,18 +4,20 @@ using Microsoft.EntityFrameworkCore;
|
||||
namespace Modelo;
|
||||
|
||||
public class RepositorioDefectos: RepositorioBase<RepositorioDefectos> {
|
||||
public bool AltaDefecto(Defecto defecto){
|
||||
public bool AltaDefecto(Defecto defecto, long dni){
|
||||
var con = Context;
|
||||
defecto.Id = con.Defectos.Any()? con.Defectos.Count()+1 : 1;
|
||||
con.Defectos.Add(defecto);
|
||||
GenerarLog(con, dni, $"Alta Defecto: {defecto.Id}");
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
public bool MarcarPago(long iddefecto){
|
||||
public bool MarcarPago(long iddefecto, long dni){
|
||||
var con = Context;
|
||||
var d = con.Defectos.FirstOrDefault(x=>x.Id == iddefecto);
|
||||
if (d == null)return false;
|
||||
d.Idestado = 2;
|
||||
GenerarLog(con, dni, $"Marcado Pago Defecto: {iddefecto}");
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,19 +4,6 @@ using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace Modelo;
|
||||
public class RepositorioGrupos: RepositorioBase<RepositorioGrupos> {
|
||||
public bool CrearGrupo(string descripcion)
|
||||
{
|
||||
var con = Context;
|
||||
|
||||
int mx = con.Grupos.Max(grupo => grupo.Id);
|
||||
Grupo gru = new Grupo{
|
||||
Id = mx+1,
|
||||
Nombre = descripcion,
|
||||
};
|
||||
con.Grupos.Add(gru);
|
||||
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
public IQueryable<Permiso> ListarPermisosDeGrupo(string grupo) {
|
||||
var con = Context;
|
||||
|
||||
@@ -49,18 +49,4 @@ public class RepositorioPermisos: RepositorioBase<RepositorioPermisos> {
|
||||
|
||||
return tienePermiso;
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
public bool CrearPermiso(string descripcion) {
|
||||
var con = Context;
|
||||
int mx = con.Permisos.Max(x => x.Id);
|
||||
|
||||
Permiso per = new Permiso{
|
||||
Id = mx+1,
|
||||
Descripcion = descripcion
|
||||
};
|
||||
con.Permisos.Add(per);
|
||||
return Guardar(con);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -70,7 +70,7 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
|
||||
return (int)filasInsertadasParam.Value == 1? true: false;
|
||||
}
|
||||
|
||||
public bool PatchPropiedad(Propiedade prop) {
|
||||
public bool PatchPropiedad(Propiedade prop, long dni) {
|
||||
var con = Context;
|
||||
Propiedade? propi = con.Propiedades.Include(x=>x.IdServicios).FirstOrDefault(x=>x.Id == prop.Id);
|
||||
|
||||
@@ -90,7 +90,7 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
|
||||
if (servi == null) return false;
|
||||
propi.IdServicios.Add(servi);
|
||||
}
|
||||
|
||||
GenerarLog(con, dni, $"Se modificó: {prop.Id}");
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
@@ -156,23 +156,23 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
|
||||
}else{
|
||||
prop.Idestado = 1;
|
||||
}
|
||||
|
||||
GenerarLog(con, cli.Dni, $"Baja propiedad: {prop.Id}");
|
||||
return Guardar(con);
|
||||
|
||||
}
|
||||
|
||||
public bool BajaPropiedad(int id) {
|
||||
public bool BajaPropiedad(int id, long dni) {
|
||||
var con = Context;
|
||||
Propiedade? prop = con.Propiedades.FirstOrDefault(x=>x.Id == id);
|
||||
|
||||
if (prop == null||prop.Dnipropietario == 0) return false;
|
||||
|
||||
prop.Idestado = prop.Idestado == 3 ? 1 : 3;
|
||||
|
||||
GenerarLog(con, dni, $"Baja propiedad: {prop.Id}");
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
public bool BajaServiciosAPropiedad(int idprop, List<int> idserv) {
|
||||
public bool BajaServiciosAPropiedad(int idprop, List<int> idserv, long dni) {
|
||||
var con = Context;
|
||||
Propiedade? prop = con.Propiedades.Include(x=>x.IdServicios).FirstOrDefault(x => x.Id == idprop);
|
||||
if (prop == null) return false;
|
||||
@@ -186,7 +186,7 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
|
||||
prop.IdServicios.Remove(servicio);
|
||||
}
|
||||
}
|
||||
|
||||
GenerarLog(con, dni, $"Baja servicios a propiedad: {prop.Id}");
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ public class RepositorioUsuarios: RepositorioBase<RepositorioUsuarios> {
|
||||
if (cli.Dni == 0) return false;
|
||||
|
||||
cli.Idgrupos.Add(grupo);
|
||||
GenerarLog(con, cli.Dni, $"Alta Inquilino: {cli.Dni}");
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
@@ -52,6 +53,7 @@ public class RepositorioUsuarios: RepositorioBase<RepositorioUsuarios> {
|
||||
if (cli.Dni == 0) return false;
|
||||
|
||||
cli.Idgrupos.Add(grupo);
|
||||
GenerarLog(con, cli.Dni, $"Alta Propietario: {cli.Dni}");
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
@@ -67,7 +69,8 @@ public class RepositorioUsuarios: RepositorioBase<RepositorioUsuarios> {
|
||||
|
||||
|
||||
public bool CheckUsuario(LoginDto logindto) {
|
||||
|
||||
if (logindto.Contraseña ==null)return false;
|
||||
|
||||
string Contraseña = HacerHash(logindto.Contraseña);
|
||||
|
||||
Cliente? usu = Context.Clientes.FirstOrDefault(a => a.Email == logindto.Email);
|
||||
@@ -137,6 +140,7 @@ public class RepositorioUsuarios: RepositorioBase<RepositorioUsuarios> {
|
||||
}
|
||||
|
||||
cli.Idgrupos.Add(gru);
|
||||
GenerarLog(con, cli.Dni, $"Añadir grupo: {gru.Nombre}");
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
@@ -150,6 +154,7 @@ public class RepositorioUsuarios: RepositorioBase<RepositorioUsuarios> {
|
||||
return false;
|
||||
}
|
||||
cli.Idgrupos.Remove(gru);
|
||||
GenerarLog(con, cli.Dni, $"Eliminar de grupo: {gru.Nombre}");
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
@@ -164,7 +169,7 @@ public class RepositorioUsuarios: RepositorioBase<RepositorioUsuarios> {
|
||||
} else {
|
||||
cli.Habilitado = 0;
|
||||
}
|
||||
|
||||
GenerarLog(con, cli.Dni, $"Baja cliente id: {cli.Dni}");
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ public class RepositorioVentas: RepositorioBase<RepositorioVentas> {
|
||||
return venta;
|
||||
}
|
||||
|
||||
public bool PatchVenta(Venta venta) {
|
||||
public bool PatchVenta(Venta venta, long dni) {
|
||||
var con = Context;
|
||||
var a = con.Ventas.FirstOrDefault(x=>x.Id == venta.Id);
|
||||
|
||||
@@ -60,15 +60,16 @@ public class RepositorioVentas: RepositorioBase<RepositorioVentas> {
|
||||
a.Idpropiedad = venta.Idpropiedad;
|
||||
a.Fechainicio = venta.Fechainicio;
|
||||
a.Idestado=2;
|
||||
|
||||
GenerarLog(con, dni, $"Se Ejercio la opcion de venta para la propiedad: {venta.Idpropiedad}");
|
||||
return Guardar(con);
|
||||
}
|
||||
|
||||
public bool SetUrlRecibo(long id, string nuevoNombreArchivo) {
|
||||
public bool SetUrlRecibo(long id, string nuevoNombreArchivo, long dni) {
|
||||
var con = Context;
|
||||
var venta = con.Ventas.FirstOrDefault(x=>x.Id == id);
|
||||
if (venta==null) return false;
|
||||
venta.UrlRecibo = nuevoNombreArchivo;
|
||||
GenerarLog(con, dni, $"Se seteo el recibo con nombre: {nuevoNombreArchivo}");
|
||||
return Guardar(con);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user