From 3a477e8dc5fa4c37896d0bad4cf4d733f50686fd Mon Sep 17 00:00:00 2001 From: fede Date: Thu, 22 May 2025 16:58:26 -0300 Subject: [PATCH] refactor --- Aspnet/Controllers/ContratoController.cs | 572 +++++++++++++---------- 1 file changed, 323 insertions(+), 249 deletions(-) diff --git a/Aspnet/Controllers/ContratoController.cs b/Aspnet/Controllers/ContratoController.cs index f617f37..aa8ef50 100644 --- a/Aspnet/Controllers/ContratoController.cs +++ b/Aspnet/Controllers/ContratoController.cs @@ -15,30 +15,34 @@ using Modelo; namespace AlquilaFacil.Controllers; [ApiController] -public class ContratoController: ControllerBase { - +public class ContratoController : ControllerBase +{ + [HttpPost("api/contrato/GenerarRecibo")] - public ActionResult GenerarRecibo([FromHeader(Name="Auth")]string Auth, MarcarPagoDto dto, bool html= true) { + public ActionResult GenerarRecibo([FromHeader(Name = "Auth")] string Auth, MarcarPagoDto dto, bool html = true) + { if (String.IsNullOrEmpty(Auth)) return Unauthorized(); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Propietario"); - if (validacion1 == false){ + if (validacion1 == false) + { validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Inquilino"); - if (validacion1 == false) { + if (validacion1 == false) + { return Unauthorized(); } } - if (dto.Idcontrato <= 0) return BadRequest(new { message = "No puede tener un contrato con id 0 o menor"}); + if (dto.Idcontrato <= 0) return BadRequest(new { message = "No puede tener un contrato con id 0 o menor" }); Contrato? cont = RepositorioContratos.Singleton.ObtenerContratoPorId(dto.Idcontrato); - if (cont == null) return BadRequest(new { message = "No hay un contrato por ese id"}); + if (cont == null) return BadRequest(new { message = "No hay un contrato por ese id" }); if (cont.DniinquilinoNavigation == null || cont.DnipropietarioNavigation == null || cont.IdpropiedadNavigation == null || - cont.IdpropiedadNavigation.IdtipropiedadNavigation == null) return BadRequest(new { message = "comunicate con el admin esta mal cargado el contratod de alguina forma"}); + cont.IdpropiedadNavigation.IdtipropiedadNavigation == null) return BadRequest(new { message = "comunicate con el admin esta mal cargado el contratod de alguina forma" }); Canon? can = RepositorioCanons.Singleton.ObtenerCanonContrato(dto.fecha, dto.Idcontrato); - if (can == null) return BadRequest(new { message = "no hay un canon para ese contrato con esa fecha"}); - if (can.IdreciboNavigation == null) return BadRequest(new { message = "No hay un recibo para ese canon"}); + if (can == null) return BadRequest(new { message = "no hay un canon para ese contrato con esa fecha" }); + if (can.IdreciboNavigation == null) return BadRequest(new { message = "No hay un recibo para ese canon" }); var cdb = new ContratoDtoBuilder() .SetInquilino($"{cont.DniinquilinoNavigation.Nombre} {cont.DniinquilinoNavigation.Apellido}") @@ -52,122 +56,134 @@ public class ContratoController: ControllerBase { var dof = new DocumentoFacade(); MemoryStream? memstr = new(); - if (html){ + if (html) + { dof.GenerarHtml(cdb, can.IdreciboNavigation, memstr); return File(memstr, "text/html", "Recibo.html"); - } else { - dof.GenerarPdf (cdb, can.IdreciboNavigation, memstr); + } + else + { + dof.GenerarPdf(cdb, can.IdreciboNavigation, memstr); return File(memstr, "application/pdf", "Recibo.pdf"); } } [HttpPost("api/contratos/marcarPago")] - public IActionResult marcarPago([FromHeader(Name="Auth")]string Auth, MarcarPagoDto dto) { + public IActionResult marcarPago([FromHeader(Name = "Auth")] string Auth, MarcarPagoDto dto) + { if (String.IsNullOrEmpty(Auth)) return Unauthorized(); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Propietario"); - if (validacion1 == false)return Unauthorized(); - if (dto.Idcontrato<=0) return BadRequest(new { message = "No puede existir un contrato con id 0 o menor"}); + if (validacion1 == false) return Unauthorized(); + if (dto.Idcontrato <= 0) return BadRequest(new { message = "No puede existir un contrato con id 0 o menor" }); Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); - if (cli == null)return Unauthorized(); + if (cli == null) return Unauthorized(); Contrato? cont = RepositorioContratos.Singleton.ObtenerContratoPorId(dto.Idcontrato); - if (cont == null) return BadRequest(new { message = "No hay un contrato por esa id"}); + 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 propietario o intenta volviendote a logear"}); + if (cli.Dni != cont.Dnipropietario) return BadRequest(new { message = "No sos propietario o intenta volviendote a logear" }); Canon? c = RepositorioCanons.Singleton.ObtenerCanonContrato(dto.fecha, dto.Idcontrato); - if (c == null) return BadRequest(new { message = "no hay un canon por esa id"}); + if (c == null) return BadRequest(new { message = "no hay un canon por esa id" }); - Recibo re = new Recibo{ + Recibo re = new Recibo + { Monto = c.Monto, Fecha = DateTime.Now, }; bool ret = RepositorioCanons.Singleton.SetRecibo(c, re, cli.Dni); return ret ? - Ok(new { message = "Se guardo correctamente"}):BadRequest(new { message = "No se pudo guardar"}); + Ok(new { message = "Se guardo correctamente" }) : BadRequest(new { message = "No se pudo guardar" }); } [HttpPost("api/contratos/realizarPago")] - public IActionResult realizarPago([FromHeader(Name="Auth")]string Auth, MarcarPagoDto dto) { + public IActionResult realizarPago([FromHeader(Name = "Auth")] string Auth, MarcarPagoDto dto) + { if (String.IsNullOrEmpty(Auth)) return Unauthorized(); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Inquilino"); if (validacion1 == false) return Unauthorized(); - if (dto.Idcontrato<=0) return BadRequest(new { message = "No puede existir un contrato con id 0 o menor"}); + if (dto.Idcontrato <= 0) return BadRequest(new { message = "No puede existir un contrato con id 0 o menor" }); Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); - if (cli == null)return Unauthorized(); + if (cli == null) return Unauthorized(); Contrato? cont = RepositorioContratos.Singleton.ObtenerContratoPorId(dto.Idcontrato); - if (cont == null) return BadRequest(new { message = "No hay un contrato por esa id"}); + if (cont == null) return BadRequest(new { message = "No hay un contrato por esa id" }); - if (cli.Dni != cont.Dniinquilino) return BadRequest(new {message = "No sos inquilino o intenta volviendote a logear"}); + if (cli.Dni != cont.Dniinquilino) return BadRequest(new { message = "No sos inquilino o intenta volviendote a logear" }); Canon? c = RepositorioCanons.Singleton.ObtenerCanonContrato(dto.fecha, dto.Idcontrato); - if (c == null) return BadRequest(new { message = "no hay un canon por esa id"}); + if (c == null) return BadRequest(new { message = "no hay un canon por esa id" }); - Recibo re = new Recibo{ + Recibo re = new Recibo + { Monto = c.Monto, Fecha = DateTime.Now, }; bool ret = RepositorioCanons.Singleton.SetRecibo(c, re, cli.Dni); return ret ? - Ok(new { message = "Se guardo correctamente"}):BadRequest(new { message = "No se pudo guardar"}); + Ok(new { message = "Se guardo correctamente" }) : BadRequest(new { message = "No se pudo guardar" }); } [HttpPost("api/contratos/crearcanons")] - public IActionResult crearCanons([FromHeader(Name="Auth")]string Auth, CrearCanonsDto dto){ + public IActionResult crearCanons([FromHeader(Name = "Auth")] string Auth, CrearCanonsDto dto) + { if (String.IsNullOrEmpty(Auth)) return Unauthorized(); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Propietario"); - if (validacion1 == false)return Unauthorized(); + if (validacion1 == false) return Unauthorized(); Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); if (cli == null) return Unauthorized(); - - if (dto.idcontrato <=0) return BadRequest(new { message ="estan mal cargados los datos"}); - + + if (dto.idcontrato <= 0) return BadRequest(new { message = "estan mal cargados los datos" }); + Contrato? cont = RepositorioContratos.Singleton.ObtenerContratoPorId(dto.idcontrato); - 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"}); + 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, cli.Dni); return ret ? - Ok(new { message = "Se crearon los canons correctamente"}):BadRequest(new { message = "No se pudo guardar"}); + Ok(new { message = "Se crearon los canons correctamente" }) : BadRequest(new { message = "No se pudo guardar" }); } [HttpGet("api/contratos/canon")] - public ActionResult getCanons([FromHeader(Name="Auth")]string Auth, int id = 0) { + public ActionResult getCanons([FromHeader(Name = "Auth")] string Auth, int id = 0) + { if (String.IsNullOrEmpty(Auth)) return Unauthorized(); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Propietario"); - if (validacion1 == false){ + if (validacion1 == false) + { validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Inquilino"); - if (validacion1 == false) { + if (validacion1 == false) + { return Unauthorized(); } } Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); - if(cli == null) return Unauthorized(); + if (cli == null) return Unauthorized(); var cont = RepositorioContratos.Singleton.ObtenerContratoPorId(id); - if (cont == null) return BadRequest(new { message = "No existe el contrato"}); - if ( cont.Dnipropietario != cli.Dni && cont.Dniinquilino != cli.Dni) return Unauthorized(); + if (cont == null) return BadRequest(new { message = "No existe el contrato" }); + if (cont.Dnipropietario != cli.Dni && cont.Dniinquilino != cli.Dni) return Unauthorized(); var list = RepositorioCanons.Singleton.ObtenerCanonsPorContrato(id); - if (list == null) return BadRequest(new { message = "No hay contrato por esa id"}); + if (list == null) return BadRequest(new { message = "No hay contrato por esa id" }); - string divisa =""; + string divisa = ""; if (cont.Iddivisa == 0) divisa = "AR$"; else if (cont.Iddivisa == 1) divisa = "US$"; - + List d = new(); - foreach (var i in list) { + foreach (var i in list) + { var c = new CanonDtoBuilder() .SetId(i.Id) - .SetPago(i.Idrecibo==null?false:true) - .SetDivisa(divisa==""?"Ugh esta mal cargado la divisa en el contrato":divisa) + .SetPago(i.Idrecibo == null ? false : true) + .SetDivisa(divisa == "" ? "Ugh esta mal cargado la divisa en el contrato" : divisa) .SetMes(i.Fecha) .SetMesNum(int.Parse((i.Fecha.Month - cont.Fechainicio.Month).ToString()) + 1) .SetMonto(i.Monto) @@ -179,18 +195,20 @@ public class ContratoController: ControllerBase { } [HttpGet("api/contratos/propietario")] - public IActionResult ObtenerContratosPorPropietario([FromHeader(Name="Auth")]string Auth) { + public IActionResult ObtenerContratosPorPropietario([FromHeader(Name = "Auth")] string Auth) + { if (String.IsNullOrEmpty(Auth)) return Unauthorized(); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Propietario"); if (validacion1 == false) return Unauthorized(); Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); - if (cli==null) return Unauthorized(); + if (cli == null) return Unauthorized(); var list = RepositorioContratos.Singleton.ObtenerContratosDePropietario(cli.Dni); List dtos = new(); - foreach (var i in list) { + foreach (var i in list) + { if (i.DniinquilinoNavigation == null || i.IdpropiedadNavigation == null || i.DnipropietarioNavigation == null) continue; @@ -209,19 +227,20 @@ public class ContratoController: ControllerBase { } [HttpGet("api/contrato/propietario")] - public IActionResult ObtenerContratoPorPropietarioPorId([FromHeader(Name="Auth")]string Auth, int id=0) { + public IActionResult ObtenerContratoPorPropietarioPorId([FromHeader(Name = "Auth")] string Auth, int id = 0) + { if (String.IsNullOrEmpty(Auth)) return Unauthorized(); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Propietario"); if (validacion1 == false) return Unauthorized(); Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); - if (cli==null) return Unauthorized(); + if (cli == null) return Unauthorized(); - if (id <= 0) return BadRequest(new { message = "No hay propiedades con id igual o menor a 0"}); + if (id <= 0) return BadRequest(new { message = "No hay propiedades con id igual o menor a 0" }); var i = RepositorioContratos.Singleton.ObtenerContratoPorId(id); if (i == null || i.DniinquilinoNavigation == null || - i.IdpropiedadNavigation == null || i.DnipropietarioNavigation == null)return BadRequest(new { message = "Fallo la query"}); - if (cli.Dni != i.Dnipropietario) return BadRequest(new { message = "No sos el propietario"}); + i.IdpropiedadNavigation == null || i.DnipropietarioNavigation == null) return BadRequest(new { message = "Fallo la query" }); + if (cli.Dni != i.Dnipropietario) return BadRequest(new { message = "No sos el propietario" }); var cont = new ContratoPropiedadDtoBuilder() .SetInquilino($"{i.DniinquilinoNavigation.Nombre} {i.DniinquilinoNavigation.Apellido}") @@ -232,28 +251,30 @@ public class ContratoController: ControllerBase { .SetFechaInicio(i.Fechainicio) .SetEstado(i.Habilitado, i.Cancelado) .SetHabitaciones(i.IdpropiedadNavigation.Canthabitaciones) - .SetPiso(i.IdpropiedadNavigation.Piso??0) - .SetLetra(i.IdpropiedadNavigation.Letra??"") + .SetPiso(i.IdpropiedadNavigation.Piso ?? 0) + .SetLetra(i.IdpropiedadNavigation.Letra ?? "") .SetMesesAumento(i.MesesHastaAumento) .SetMesesDuracion(i.MesesDurationContrato) .Build(); - + return Ok(cont); } [HttpGet("api/contratos/inquilino")] - public IActionResult ObtenerContratosPorInquilino([FromHeader(Name="Auth")]string Auth) { + public IActionResult ObtenerContratosPorInquilino([FromHeader(Name = "Auth")] string Auth) + { if (String.IsNullOrEmpty(Auth)) return Unauthorized(); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Inquilino"); if (validacion1 == false) return Unauthorized(); Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); - if (cli==null) return Unauthorized(); + if (cli == null) return Unauthorized(); var list = RepositorioContratos.Singleton.ObtenerContratosDeInquilino(cli.Dni); - + List dtos = new(); - foreach (var i in list) { + foreach (var i in list) + { if (i.DniinquilinoNavigation == null || i.IdpropiedadNavigation == null || i.DnipropietarioNavigation == null) continue; @@ -272,20 +293,21 @@ public class ContratoController: ControllerBase { } [HttpGet("api/contrato/inquilino")] - public IActionResult ObtenerContratoPorInquilinoPorId([FromHeader(Name="Auth")]string Auth, int id=0) { + public IActionResult ObtenerContratoPorInquilinoPorId([FromHeader(Name = "Auth")] string Auth, int id = 0) + { if (String.IsNullOrEmpty(Auth)) return Unauthorized(); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Inquilino"); if (validacion1 == false) return Unauthorized(); Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); - if (cli==null) return Unauthorized(); + if (cli == null) return Unauthorized(); - if (id <= 0) return BadRequest(new { message = "No hay propiedades con id igual o menor a 0"}); + if (id <= 0) return BadRequest(new { message = "No hay propiedades con id igual o menor a 0" }); var i = RepositorioContratos.Singleton.ObtenerContratoPorId(id); if (i == null || i.DniinquilinoNavigation == null || - i.IdpropiedadNavigation == null || i.DnipropietarioNavigation == null)return BadRequest(new { message = "Fallo la query"}); - if (cli.Dni != i.Dniinquilino) return BadRequest(new { message = "No sos el inquilino"}); - + i.IdpropiedadNavigation == null || i.DnipropietarioNavigation == null) return BadRequest(new { message = "Fallo la query" }); + if (cli.Dni != i.Dniinquilino) return BadRequest(new { message = "No sos el inquilino" }); + var cont = new ContratoPropiedadDtoBuilder() .SetInquilino($"{i.DniinquilinoNavigation.Nombre} {i.DniinquilinoNavigation.Apellido}") .SetUbicacion(i.IdpropiedadNavigation.Ubicacion) @@ -295,36 +317,37 @@ public class ContratoController: ControllerBase { .SetFechaInicio(i.Fechainicio) .SetEstado(i.Habilitado, i.Cancelado) .SetHabitaciones(i.IdpropiedadNavigation.Canthabitaciones) - .SetPiso(i.IdpropiedadNavigation.Piso??0) - .SetLetra(i.IdpropiedadNavigation.Letra??"") + .SetPiso(i.IdpropiedadNavigation.Piso ?? 0) + .SetLetra(i.IdpropiedadNavigation.Letra ?? "") .SetMesesAumento(i.MesesHastaAumento) .SetMesesDuracion(i.MesesDurationContrato) .Build(); - + return Ok(cont); } - + [HttpPost("api/contratos/precontrato")] - public IActionResult IniciarPrecontrato([FromHeader(Name = "Auth")]string Auth, [FromBody] PrecontratoDto dto) { - if (String.IsNullOrEmpty(Auth)) return Unauthorized(); + public IActionResult IniciarPrecontrato([FromHeader(Name = "Auth")] string Auth, [FromBody] PrecontratoDto dto) + { + if (String.IsNullOrEmpty(Auth)) return Unauthorized(); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Propietario"); if (validacion1 == false) return Unauthorized(); string validacion2 = ValidarDtoPrecontrato(dto); - if (validacion2 != "") return BadRequest(new {message = validacion2}); - + if (validacion2 != "") return BadRequest(new { message = validacion2 }); + Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); - if (cli == null) return BadRequest(new {message = "Tu token no corresponde a ningun cliente (volvete a logear)"}); - if (cli.Email != dto.EmailPropietario) return BadRequest(new {message = "No Corresponde el email de propietario con el del token"}); - + if (cli == null) return BadRequest(new { message = "Tu token no corresponde a ningun cliente (volvete a logear)" }); + if (cli.Email != dto.EmailPropietario) return BadRequest(new { message = "No Corresponde el email de propietario con el del token" }); + Cliente? propi = RepositorioPropietario.Singleton.ObtenerPropietarioPorEmail(dto.EmailPropietario); - if (propi == null || propi.Dni == 0) return BadRequest(new {message = "No hay propietario por ese email"}); + if (propi == null || propi.Dni == 0) return BadRequest(new { message = "No hay propietario por ese email" }); Cliente? inq = RepositorioInquilinos.Singleton.ObtenerInquilinoPorEmail(dto.EmailInquilino); - if (inq == null || inq.Dni == 0) return BadRequest(new {message = "No hay inquilinos por ese email"}); + if (inq == null || inq.Dni == 0) return BadRequest(new { message = "No hay inquilinos por ese email" }); Propiedade? p = RepositorioPropiedades.Singleton.ObtenerPropiedadPorId(dto.IdPropiedad); - if (p == null || p.Id == 0) return BadRequest(new {message = "La id de propiedad no corresponde a una propiedad"}); + if (p == null || p.Id == 0) return BadRequest(new { message = "La id de propiedad no corresponde a una propiedad" }); var precontrato = new PrecontratoBuilder() .SetHabilitado() @@ -339,7 +362,7 @@ public class ContratoController: ControllerBase { .SetOpcionVenta(dto.TieneOpcionVenta) .Build(); - + var notificacion = new NotificacioneBuilder() .SetAccion("Carge Garantes") .SetDniremitente(propi.Dni) @@ -351,10 +374,14 @@ public class ContratoController: ControllerBase { .Build(); bool ret; - if (dto.TieneOpcionVenta==false){ + if (dto.TieneOpcionVenta == false) + { ret = RepositorioContratos.Singleton.CargaPrecontrato(cli.Dni, precontrato, notificacion); - } else { - Venta v = new Venta{ + } + else + { + Venta v = new Venta + { Idestado = 1, Iddivisa = dto.iddivisa, Monto = dto.MontoOpcion, @@ -362,41 +389,45 @@ public class ContratoController: ControllerBase { ret = RepositorioContratos.Singleton.CargaPrecontratoOpcionVenta(precontrato, notificacion, v, cli.Dni); } - if (ret) { + if (ret) + { ret = RepositorioNotificaciones.Singleton.MarcarComoLeido(cli.Dni, DateTime.Parse(dto.fechaprimernotificacion)); } - return (ret)? - Ok(new {message = "Se Cargo el precontrato y envio una notificacion al inquilino"}): - BadRequest(new {message = "No se pudo cargar el precontrato"}); + return (ret) ? + Ok(new { message = "Se Cargo el precontrato y envio una notificacion al inquilino" }) : + BadRequest(new { message = "No se pudo cargar el precontrato" }); } - - [HttpPut("api/contratos/addGarantes")] - public IActionResult AddGarantes([FromHeader(Name = "Auth")]string Auth, AltaGarantesDto dto) { + + [HttpPut("api/contratos/addGarantes")] + public IActionResult AddGarantes([FromHeader(Name = "Auth")] string Auth, AltaGarantesDto dto) + { if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(""); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Inquilino"); if (validacion1 == false) return Unauthorized(); var validacion2 = ValidarDtoAltaGarantes(dto); - if (validacion2 != "") return BadRequest(new {message = validacion2}); - + if (validacion2 != "") return BadRequest(new { message = validacion2 }); + Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); - if (cli == null) return BadRequest(new {message = "Tu token no corresponde a ningun cliente (volvete a logear)"}); - if (cli.Email != dto.EmailInquilino) return BadRequest(new {message = "No Corresponde el email de inquilino con el del token"}); + if (cli == null) return BadRequest(new { message = "Tu token no corresponde a ningun cliente (volvete a logear)" }); + if (cli.Email != dto.EmailInquilino) return BadRequest(new { message = "No Corresponde el email de inquilino con el del token" }); var validacion4 = RepositorioContratos.Singleton.CantidadGarantesEncontrato(dto.EmailInquilino, dto.Idpropiedad); - if (validacion4 <= 0 || dto.garantes.Count()!=validacion4) return BadRequest(new{message="Cantidad de garantes incorrecta"}); + if (validacion4 <= 0 || dto.garantes.Count() != validacion4) return BadRequest(new { message = "Cantidad de garantes incorrecta" }); Cliente? propi = RepositorioPropietario.Singleton.ObtenerPropietarioPorIdPropiedad(dto.Idpropiedad); - if(propi == null) return BadRequest(new{message = "No se encuentra el propietario de la propiedad"}); + if (propi == null) return BadRequest(new { message = "No se encuentra el propietario de la propiedad" }); - foreach (var i in dto.garantes) { + foreach (var i in dto.garantes) + { string validacion3 = ValidarDtoGarante(i); - if (validacion3 != "") return BadRequest( new { message = validacion3 }); + if (validacion3 != "") return BadRequest(new { message = validacion3 }); } - + List gar = new(); - foreach (var i in dto.garantes) { + foreach (var i in dto.garantes) + { Garante g = new GaranteBuilder() .SetNombre(i.Nombre) .SetApellido(i.Apellido) @@ -407,13 +438,14 @@ public class ContratoController: ControllerBase { .Build(); gar.Add(g); } - + var contr = RepositorioContratos.Singleton.ObtenerContrato(dto.EmailInquilino, dto.Idpropiedad); - if (contr == null) return BadRequest(new { message = "No existe el contrato o ya fue activado"}); + 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, cli.Dni); - if (ret) { - Console.WriteLine(dto.fecha); + if (ret) + { + Console.WriteLine(dto.fecha); RepositorioNotificaciones.Singleton.MarcarComoLeido(cli.Dni, dto.fecha); var noti = new NotificacioneBuilder() @@ -428,37 +460,40 @@ public class ContratoController: ControllerBase { ret = RepositorioNotificaciones.Singleton.AltaNotificacion(noti); } return ret ? - Ok(new {message = "Se Añadieron los Garantes"}):BadRequest(new { message = "Fallo la carga"}); + Ok(new { message = "Se Añadieron los Garantes" }) : BadRequest(new { message = "Fallo la carga" }); } [HttpPut("api/contratos/cancelar")] - public IActionResult CancelarPrecontrato([FromHeader(Name = "Auth")]string Auth, CancelarPrecontratoDto dto) { + public IActionResult CancelarPrecontrato([FromHeader(Name = "Auth")] string Auth, CancelarPrecontratoDto dto) + { if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(""); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Propietario"); if (validacion1 == false) return Unauthorized(); var validacion2 = ValidarCancelarDto(dto); - if (validacion2 != "") return BadRequest(new {message = validacion2}); + if (validacion2 != "") return BadRequest(new { message = validacion2 }); Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); - if (cli==null) return Unauthorized(); + 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"}); + 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" }); Propiedade? prop = RepositorioPropiedades.Singleton.ObtenerPropiedadPorId(dto.idpropiedad); - if (prop == null) return BadRequest(new {message = "No existe la propiedad por esa id"}); - if (prop.Dnipropietario != pro.Dni) return BadRequest(new {message = "Este propietario no es el dueño de la propiedad"}); - + if (prop == null) return BadRequest(new { message = "No existe la propiedad por esa id" }); + if (prop.Dnipropietario != pro.Dni) return BadRequest(new { message = "Este propietario no es el dueño de la propiedad" }); + var inq = RepositorioInquilinos.Singleton.ObtenerInquilinoPorEmail(dto.EmailInquilino); - if (inq == null) return BadRequest(new {message = "No hay un inquilino por ese email"}); + if (inq == null) return BadRequest(new { message = "No hay un inquilino por ese email" }); var ret = RepositorioContratos.Singleton.CancelarPrecontrato(dto.EmailInquilino, dto.idpropiedad, cli.Dni); - if (ret) { + if (ret) + { prop.Idestado = 1; ret = RepositorioPropiedades.Singleton.PatchPropiedad(prop, pro.Dni); - if (ret){ + if (ret) + { RepositorioNotificaciones.Singleton.MarcarComoLeido(pro.Dni, dto.fecha); var noti = new NotificacioneBuilder() .SetAccion("ContratoCancelado") @@ -470,35 +505,44 @@ public class ContratoController: ControllerBase { .SetLeido(false) .Build(); ret = RepositorioNotificaciones.Singleton.AltaNotificacion(noti); - if (ret){ - return Ok(new {message = "Se cancelo el precontrato"}); - }else{ - return Ok(new {message = "Se cancelo el precontrato, pero no se pudo notificar al inquilino"}); + if (ret) + { + return Ok(new { message = "Se cancelo el precontrato" }); + } + else + { + return Ok(new { message = "Se cancelo el precontrato, pero no se pudo notificar al inquilino" }); } - }else{ - return BadRequest(new {message = "No se pudo setear la propiedad como Disponible en busqueda"}); } - }else{ - return BadRequest(new {message = "Se fallo al intentar cancelar el precontrato"}); + else + { + return BadRequest(new { message = "No se pudo setear la propiedad como Disponible en busqueda" }); + } + } + else + { + return BadRequest(new { message = "Se fallo al intentar cancelar el precontrato" }); } } [HttpGet("api/contratos/precontrato/listaGarantes")] - public IActionResult ObtenerListaGarantes([FromHeader(Name = "Auth")]string Auth, long idcontrato = 0, [FromQuery] string EmailPropietario = "" ) { + public IActionResult ObtenerListaGarantes([FromHeader(Name = "Auth")] string Auth, long idcontrato = 0, [FromQuery] string EmailPropietario = "") + { if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(""); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Propietario"); if (validacion1 == false) return Unauthorized(); - - if (idcontrato == 0 || EmailPropietario == "") return BadRequest(new { message = "Estan mal cargados los datos"}); + + if (idcontrato == 0 || EmailPropietario == "") return BadRequest(new { message = "Estan mal cargados los datos" }); Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); - if (cli == null) return BadRequest(new {message = "No hay un propietario por ese token"}); - if (cli.Email != EmailPropietario) return BadRequest(new {message = "El Email del usuario no coinside con el del token"}); - + if (cli == null) return BadRequest(new { message = "No hay un propietario por ese token" }); + if (cli.Email != EmailPropietario) return BadRequest(new { message = "El Email del usuario no coinside con el del token" }); + Contrato? contr = RepositorioContratos.Singleton.ObtenerPreContratoPorId(idcontrato); - if (contr == null) return BadRequest(new {message = "No hay un precontrato por esa id"}); + if (contr == null) return BadRequest(new { message = "No hay un precontrato por esa id" }); LinkedList list = new(); - foreach (var i in contr.Idgarantes) { + foreach (var i in contr.Idgarantes) + { list.AddFirst(new GaranteDtoBuilder() .SetCelular(i.Celular) .SetDni(i.Dni) @@ -512,10 +556,12 @@ public class ContratoController: ControllerBase { } private readonly IMinioClient mc; - public ContratoController(IMinioClient minioClient) { + public ContratoController(IMinioClient minioClient) + { mc = minioClient; - if (mc == null){ - MinioConfigcus? mcon = JsonSerializer.Deserialize(System.IO.File.ReadAllText("./settings.json"))?? null; + if (mc == null) + { + MinioConfigcus? mcon = JsonSerializer.Deserialize(System.IO.File.ReadAllText("./settings.json")) ?? null; if (mcon == null) throw new Exception(); mc = new MinioClient().WithCredentials(mcon.usr, mcon.scrt) @@ -526,162 +572,177 @@ public class ContratoController: ControllerBase { } [HttpPost("api/contratos/subirContrato")] - public async Task subirContrato([FromHeader(Name = "Auth")]string Auth, [FromForm]long idcontrato, [FromForm]DateTime ubicarnotificacion, IFormFile contrato) { + public async Task subirContrato([FromHeader(Name = "Auth")] string Auth, [FromForm] long idcontrato, [FromForm] DateTime ubicarnotificacion, IFormFile contrato) + { if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(""); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Propietario"); - if (validacion1 == false) return Unauthorized(); - - if (idcontrato<=0) return BadRequest(new {message = "No puede tener un id contrato menor o igual a 0"}); + if (validacion1 == false) return Unauthorized(); + + if (idcontrato <= 0) return BadRequest(new { message = "No puede tener un id contrato menor o igual a 0" }); Contrato? contr = RepositorioContratos.Singleton.ObtenerPreContratoPorId(idcontrato); - if (contr == null) return BadRequest(new { message = "No hay precontrato por esa id"}); + if (contr == null) return BadRequest(new { message = "No hay precontrato por esa id" }); if (contr.Dniinquilino == 0 || contr.Dnipropietario == 0 || contr.Idpropiedad == 0 || - contr.Dniinquilino == null || contr.Dnipropietario == null || contr.Idpropiedad == null) { - return BadRequest(new { message = "Estan mal cargados los datos del precontrato comunicate con un administrador"}); - } + contr.Dniinquilino == null || contr.Dnipropietario == null || contr.Idpropiedad == null) + { + return BadRequest(new { message = "Estan mal cargados los datos del precontrato comunicate con un administrador" }); + } Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); - if (cli == null || contr.DnipropietarioNavigation == null) return BadRequest(new { message ="No se pudo checkear que el token corresponda al propietario"}); - if (cli.Dni != contr.DnipropietarioNavigation.Dni) return BadRequest(new { message = "el token de usuario no coinside con el usuario propietario"}); + if (cli == null || contr.DnipropietarioNavigation == null) return BadRequest(new { message = "No se pudo checkear que el token corresponda al propietario" }); + if (cli.Dni != contr.DnipropietarioNavigation.Dni) return BadRequest(new { message = "el token de usuario no coinside con el usuario propietario" }); if (contrato == null) return BadRequest(new { message = "Debe subir un archivo." }); if (contrato.ContentType != "application/pdf") return BadRequest(new { message = "El archivo debe ser un documento PDF." }); if (!Path.GetExtension(contrato.FileName).Equals(".pdf", StringComparison.OrdinalIgnoreCase)) return BadRequest(new { message = "El archivo debe tener la extensión .pdf." }); string nuevoNombreArchivo = $"id:{contr.Id}-inq:{contr.Dniinquilino}-propi:{contr.Dnipropietario}-idprop:{contr.Idpropiedad}.pdf"; - + bool ret = await subirContrato(contrato, nuevoNombreArchivo); - if(ret == false) return BadRequest(new {message = "No se pudo subir el archivo"}); - + if (ret == false) return BadRequest(new { message = "No se pudo subir el archivo" }); + 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() - .SetDniremitente(contr.Dnipropietario??0) - .SetIdpropiedad(contr.Idpropiedad??0) - .SetDnicliente(contr.Dniinquilino??0) + .SetDniremitente(contr.Dnipropietario ?? 0) + .SetIdpropiedad(contr.Idpropiedad ?? 0) + .SetDnicliente(contr.Dniinquilino ?? 0) .SetAccion("Aceptar Contrato") .SetMensaje($"El propietario: {contr.Dnipropietario}, hizo un documento de contrato: {contr.Id}") .SetFecha(DateTime.Now) .SetLeido(false) .Build(); - + RepositorioNotificaciones.Singleton.MarcarComoLeido(cli.Dni, ubicarnotificacion); ret = RepositorioNotificaciones.Singleton.AltaNotificacion(noti); - return (ret)? - Ok(new { message = "se notifico al futuro inquilino"}): BadRequest(new { message = "No se pudo enviar la notificacion"}); + return (ret) ? + Ok(new { message = "se notifico al futuro inquilino" }) : BadRequest(new { message = "No se pudo enviar la notificacion" }); } [HttpGet("api/contrato/DocumentoFinal")] - public IActionResult ObtenerContratoFinal ([FromHeader(Name = "Auth")]string Auth, [FromQuery]long idcontrato) { + public IActionResult ObtenerContratoFinal([FromHeader(Name = "Auth")] string Auth, [FromQuery] long idcontrato) + { if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(""); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Inquilino"); - if (validacion1 == false){ + if (validacion1 == false) + { validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Propietario"); if (validacion1 == false) return Unauthorized(); } - if (idcontrato <= 0) return BadRequest(new {message = "La id no puede ser igual o menor a 0"}); + if (idcontrato <= 0) return BadRequest(new { message = "La id no puede ser igual o menor a 0" }); Contrato? contr = RepositorioContratos.Singleton.ObtenerContratoPorId(idcontrato); - if (contr == null || contr.Dniinquilino == 0) return BadRequest(new { message = "No hay un contrato por esa id"}); + if (contr == null || contr.Dniinquilino == 0) return BadRequest(new { message = "No hay un contrato por esa id" }); Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); - if (cli == null) return BadRequest(new { message = "No hay un cliente por ese token"}); - if (cli.Dni != contr.Dniinquilino && cli.Dni != contr.Dnipropietario) return BadRequest(new { message = "El token no corresponde con el del inquilino"}); + if (cli == null) return BadRequest(new { message = "No hay un cliente por ese token" }); + if (cli.Dni != contr.Dniinquilino && cli.Dni != contr.Dnipropietario) return BadRequest(new { message = "El token no corresponde con el del inquilino" }); - try{ - var memstream = new MemoryStream(); + try + { + var memstream = new MemoryStream(); var goa = new GetObjectArgs() .WithBucket("alquilafacil") .WithObject(contr.UrlContrato) - .WithCallbackStream(stream => { - memstream.Position=0; + .WithCallbackStream(stream => + { + memstream.Position = 0; stream.CopyTo(memstream); - }); - + }); + mc.GetObjectAsync(goa).Wait(); memstream.Position = 0; - + if (memstream.Length == 0) return BadRequest(new { message = "El archivo está vacío" }); - + return File(memstream, "application/pdf", contr.UrlContrato); - - } catch (Exception e){ + + } + catch (Exception e) + { Console.Error.WriteLine(e); - return BadRequest(new { message = "Fallo al intentar obtener el archivo del almacenamiento o este no existe"}); + return BadRequest(new { message = "Fallo al intentar obtener el archivo del almacenamiento o este no existe" }); } } [HttpGet("api/contrato/getdocumento")] - public IActionResult ObtenerContrato([FromHeader(Name = "Auth")]string Auth, [FromQuery]long idcontrato) { + public IActionResult ObtenerContrato([FromHeader(Name = "Auth")] string Auth, [FromQuery] long idcontrato) + { if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(""); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Inquilino"); - if (validacion1 == false){ + if (validacion1 == false) + { validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Propietario"); if (validacion1 == false) return Unauthorized(); } - if (idcontrato <= 0) return BadRequest(new {message = "La id no puede ser igual o menor a 0"}); + if (idcontrato <= 0) return BadRequest(new { message = "La id no puede ser igual o menor a 0" }); Contrato? contr = RepositorioContratos.Singleton.ObtenerPreContratoPorId(idcontrato); - if (contr == null || contr.Dniinquilino == 0) return BadRequest(new { message = "No hay un precontrato por esa id"}); + if (contr == null || contr.Dniinquilino == 0) return BadRequest(new { message = "No hay un precontrato por esa id" }); Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); - 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"}); + 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" }); string nuevoNombreArchivo = $"id:{contr.Id}-inq:{contr.Dniinquilino}-propi:{contr.Dnipropietario}-idprop:{contr.Idpropiedad}.pdf"; - try{ - var memstream = new MemoryStream(); + try + { + var memstream = new MemoryStream(); var goa = new GetObjectArgs() .WithBucket("alquilafacil") .WithObject(nuevoNombreArchivo) - .WithCallbackStream(stream => { - memstream.Position=0; + .WithCallbackStream(stream => + { + memstream.Position = 0; stream.CopyTo(memstream); - }); - + }); + mc.GetObjectAsync(goa).Wait(); memstream.Position = 0; - + if (memstream.Length == 0) return BadRequest(new { message = "El archivo está vacío" }); - + return File(memstream, "application/pdf", nuevoNombreArchivo); - - } catch (Exception e){ + + } + catch (Exception e) + { Console.Error.WriteLine(e); - return BadRequest(new { message = "Fallo al intentar obtener el archivo del almacenamiento o este no existe"}); + return BadRequest(new { message = "Fallo al intentar obtener el archivo del almacenamiento o este no existe" }); } } [HttpPost("api/contratos/aceptarContrato")] - public IActionResult AceptarContrato([FromHeader(Name = "Auth")]string Auth, [FromBody] AceptarContratoDto dto){ + public IActionResult AceptarContrato([FromHeader(Name = "Auth")] string Auth, [FromBody] AceptarContratoDto dto) + { if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Inquilino"); - if (validacion1 == false) return Unauthorized(); + if (validacion1 == false) return Unauthorized(); + + if (dto.Idcontrato <= 0) return BadRequest(new { message = "La id no puede ser igual o menor a 0" }); - if (dto.Idcontrato <= 0) return BadRequest(new {message = "La id no puede ser igual o menor a 0"}); - Contrato? contr = RepositorioContratos.Singleton.ObtenerPreContratoPorId(dto.Idcontrato); - if (contr == null || contr.Dniinquilino == 0) return BadRequest(new { message = "No hay un precontrato por esa id"}); + if (contr == null || contr.Dniinquilino == 0) return BadRequest(new { message = "No hay un precontrato por esa id" }); Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); - 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"}); + 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, cli.Dni); - if (ret == false) return BadRequest(new { message ="fallo al aceptar el contrato"}); + if (ret == false) return BadRequest(new { message = "fallo al aceptar el contrato" }); RepositorioNotificaciones.Singleton.MarcarComoLeido(cli.Dni, dto.Fecha); var noti = new NotificacioneBuilder() .SetDniremitente(cli.Dni) - .SetIdpropiedad(contr.Idpropiedad??0) - .SetDnicliente(contr.Dnipropietario??0) + .SetIdpropiedad(contr.Idpropiedad ?? 0) + .SetDnicliente(contr.Dnipropietario ?? 0) .SetAccion("Aceptado Contrato") .SetMensaje($"Se inicio el alquiler") .SetFecha(DateTime.Now) @@ -690,58 +751,63 @@ public class ContratoController: ControllerBase { ret = RepositorioNotificaciones.Singleton.AltaNotificacion(noti); return ret ? - Ok(new { message = "Se acepto el contrato y se crearon los Canons a ser pagados"}) : - BadRequest(new { message = "No se pudo aceptar el contrato"}); - + Ok(new { message = "Se acepto el contrato y se crearon los Canons a ser pagados" }) : + BadRequest(new { message = "No se pudo aceptar el contrato" }); + } [HttpPut("api/contratos/rechazarPreContrato")] - public IActionResult CancelarContrato([FromHeader(Name = "Auth")]string Auth, [FromBody] RechazarPreContrato dto ) { + public IActionResult CancelarContrato([FromHeader(Name = "Auth")] string Auth, [FromBody] RechazarPreContrato dto) + { if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Inquilino"); if (validacion1 == false) return Unauthorized(); - if (dto.Idcontrato <= 0) return BadRequest(new {message = "La id no puede ser igual o menor a 0"}); - + if (dto.Idcontrato <= 0) return BadRequest(new { message = "La id no puede ser igual o menor a 0" }); + Contrato? contr = RepositorioContratos.Singleton.ObtenerPreContratoPorId(dto.Idcontrato); - if (contr == null || contr.Dniinquilino == 0) return BadRequest(new { message = "No hay un precontrato por esa id"}); + if (contr == null || contr.Dniinquilino == 0) return BadRequest(new { message = "No hay un precontrato por esa id" }); Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); - 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"}); + 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, cli.Dni); - if (ret == false) return BadRequest(new {message = "Fallo al intentar cancelar el precontrato"}); + if (ret == false) return BadRequest(new { message = "Fallo al intentar cancelar el precontrato" }); RepositorioNotificaciones.Singleton.MarcarComoLeido(cli.Dni, dto.Fecha); var noti = new NotificacioneBuilder() .SetDniremitente(cli.Dni) - .SetIdpropiedad(contr.Idpropiedad??0) - .SetDnicliente(contr.Dnipropietario??0) + .SetIdpropiedad(contr.Idpropiedad ?? 0) + .SetDnicliente(contr.Dnipropietario ?? 0) .SetAccion("Rechazo Contrato") .SetMensaje($"Se cancelo el proceso para alquilar de: {cli.Nombre}") .SetFecha(DateTime.Now) .SetLeido(false) .Build(); ret = RepositorioNotificaciones.Singleton.AltaNotificacion(noti); - - return ret? - Ok(new { message = "Se cancelo el proceso para iniciar el alquiler"}): - BadRequest(new { message = "No se pudo cancelar"}); + + return ret ? + Ok(new { message = "Se cancelo el proceso para iniciar el alquiler" }) : + BadRequest(new { message = "No se pudo cancelar" }); } - private async Task subirContrato(IFormFile f, string flname) { - try { + private async Task subirContrato(IFormFile f, string flname) + { + try + { var buck = new BucketExistsArgs().WithBucket("alquilafacil"); bool encontrado = await mc.BucketExistsAsync(buck).ConfigureAwait(false); - if(!encontrado){ + if (!encontrado) + { var mb = new MakeBucketArgs().WithBucket("alquilafacil"); await mc.MakeBucketAsync(mb).ConfigureAwait(false); } - using (var stream = new MemoryStream()){ + using (var stream = new MemoryStream()) + { await f.CopyToAsync(stream); - stream.Position=0; + stream.Position = 0; PutObjectArgs putbj = new PutObjectArgs() .WithBucket("alquilafacil") .WithObject(flname) @@ -751,28 +817,32 @@ public class ContratoController: ControllerBase { await mc.PutObjectAsync(putbj); } return true; - } catch (Exception e ) { + } + catch (Exception e) + { Console.Error.WriteLine(e.Message); return false; } } [HttpGet("api/contratos/garantes")] - public IActionResult ObtenerGarantes([FromHeader(Name ="Auth")] string Auth, int idcontrato) { + public IActionResult ObtenerGarantes([FromHeader(Name = "Auth")] string Auth, int idcontrato) + { if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(); - if(idcontrato <= 0) return BadRequest(); - + if (idcontrato <= 0) return BadRequest(); + Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); if (cli == null) return BadRequest(); - + Contrato? cont = RepositorioContratos.Singleton.ObtenerContratoPorId(idcontrato); if (cont == null) return BadRequest(); - if ((cont.Dniinquilino != cli.Dni && cont.Dnipropietario != cli.Dni)|| !RepositorioGrupos.Singleton.CheckGrupos(Auth, "Admin")) return BadRequest(); - + if ((cont.Dniinquilino != cli.Dni && cont.Dnipropietario != cli.Dni) || !RepositorioGrupos.Singleton.CheckGrupos(Auth, "Admin")) return BadRequest(); + var list = cont.Idgarantes; List l = new(); - foreach (var i in list) { + foreach (var i in list) + { l.Add(new GaranteDtoBuilder() .SetCelular(i.Celular) .SetDni(i.Dni) @@ -783,20 +853,22 @@ public class ContratoController: ControllerBase { .Build()); } return Ok(l); - } + } - private string ValidarCancelarDto(CancelarPrecontratoDto dto) { + private string ValidarCancelarDto(CancelarPrecontratoDto dto) + { if (dto == null) return "dto nulo"; string ret = ""; - if (dto.EmailInquilino =="") ret += "No puede tener un EmailInquilino Vacio\n"; - if (dto.EmailPropietario =="") ret += "No puede tener un EmailPropietario Vacio\n"; - if (dto.idpropiedad <= 0 ) ret += "No puede tener id propiedad igual o menor a 0\n"; + if (dto.EmailInquilino == "") ret += "No puede tener un EmailInquilino Vacio\n"; + if (dto.EmailPropietario == "") ret += "No puede tener un EmailPropietario Vacio\n"; + if (dto.idpropiedad <= 0) ret += "No puede tener id propiedad igual o menor a 0\n"; if (dto.fecha == DateTime.MinValue) ret += "Falta fecha\n"; return ret; - } + } - private string ValidarDtoGarante(GaranteDto g) { + private string ValidarDtoGarante(GaranteDto g) + { string ret = ""; if (g == null) return "dto nulo"; @@ -809,29 +881,31 @@ public class ContratoController: ControllerBase { return ret; } - private string ValidarDtoAltaGarantes(AltaGarantesDto dto){ + private string ValidarDtoAltaGarantes(AltaGarantesDto dto) + { string ret = ""; if (dto == null) return "dto nulo"; - if (dto.garantes.Count()<=0) ret += "No se puede tener 0 o menos garantes\n"; - if (dto.Idpropiedad<=0) ret += "la id de propiedad no puede ser igual o menor a 0\n"; + if (dto.garantes.Count() <= 0) ret += "No se puede tener 0 o menos garantes\n"; + if (dto.Idpropiedad <= 0) ret += "la id de propiedad no puede ser igual o menor a 0\n"; if (dto.EmailInquilino == "") ret += "El email de inquilino no puede estar vacio\n"; - + return ret; } - private string ValidarDtoPrecontrato( PrecontratoDto dto) { + private string ValidarDtoPrecontrato(PrecontratoDto dto) + { string ret = ""; if (dto == null) return "dto nulo"; - if (dto.CantidadGarantes<0) ret += "la cantidad de garantes necesarios no pueden ser menor a 0\n"; - if (dto.CantidadGarantes>10) ret += "Hay un maximo de 10 garantes\n"; + if (dto.CantidadGarantes < 0) ret += "la cantidad de garantes necesarios no pueden ser menor a 0\n"; + if (dto.CantidadGarantes > 10) ret += "Hay un maximo de 10 garantes\n"; if (dto.EmailInquilino == "") ret += "el email del inquilino no puede ser nulo\n"; if (dto.EmailPropietario == "") ret += "el email del propietario no puede estar vacio\n"; - if (dto.IdPropiedad <= 0) ret += "la id de propiedad no puede ser igual o menor a 0\n"; + if (dto.IdPropiedad <= 0) ret += "la id de propiedad no puede ser igual o menor a 0\n"; if (dto.MesesHastaAumento <= 0) ret += "No puede tener 0 o menos meses hasta el aumento\n"; if (dto.MesesDuracionContrato <= 0) ret += "No puede tener 0 o menos meses de duracion\n"; if (dto.MesesDuracionContrato < dto.MesesHastaAumento) ret += "el tiempo hasta aumento no puede ser mayor de \n"; - if (dto.TieneOpcionVenta == true && dto.MontoOpcion <=0) ret +="No puede tener un monto de venta negativo o 0"; + if (dto.TieneOpcionVenta == true && dto.MontoOpcion <= 0) ret += "No puede tener un monto de venta negativo o 0"; return ret; }