public Response <Credito> Abonar(AbonoRequest request) { Credito credito = Buscar(x => x.Id == request.CreditoId).FirstOrDefault(); if (credito == null) { return(new Response <Credito> { Mensaje = "Crédito no encontrado." }); } List <string> errores = credito.PuedeAbonar(request.Monto); if (errores.Any()) { return(new Response <Credito> { Mensaje = string.Join("|", errores) }); } string mensaje = credito.Abonar(request.Monto); _unitOfWork.CreditoRepository.Edit(credito); _unitOfWork.Commit(); credito.Abonos = null; // Eliminar las listas internas por problemas de ciclos en Json credito.Cuotas = null; return(new Response <Credito> { Mensaje = mensaje, Entity = credito }); }
public void AbonoInferiorCuotaCredito() { Credito credito = service.Buscar(x => x.Id == 4).FirstOrDefault(); double valorAbono = 100000; Assert.IsNotNull(credito); AbonoRequest request = new AbonoRequest { Monto = valorAbono, CreditoId = credito.Id }; Response <Credito> response = service.Abonar(request); Assert.Contains($"El valor del abono debe ser mínimo de ${credito.ValorCuota}.", response.Mensaje.Split(',')); }
public void AbonoSuperiorCuotaCredito() { Credito credito = service.Buscar(x => x.Id == 4, include: "Cuotas").FirstOrDefault(); double valorAbono = 631000; double valorEsperado = credito.Saldo - valorAbono; Assert.IsNotNull(credito); AbonoRequest request = new AbonoRequest { Monto = valorAbono, CreditoId = credito.Id }; Response <Credito> response = service.Abonar(request); Assert.AreEqual($"Abono registrado correctamente. Su nuevo saldo es: ${valorEsperado}.", response.Mensaje); }
public ActionResult <Response <Credito> > Abonar(AbonoRequest abono) { var response = _service.Abonar(abono); return(Ok(response)); }