public AbonarResponse Ejecutar(AbonarRequest request) { Empleado empleado = _unitOfWork.EmpleadoRepository.FindBy(x => x.Cedula == request.Cedula, includeProperties: "Creditos").FirstOrDefault(); if (empleado != null) { Credito credito = _unitOfWork.CreditoRepository.FindBy(x => x.CodigoCredito == request.CodigoCredito, includeProperties: "Cuotas,Pagos").FirstOrDefault(); if (credito == null) { return new AbonarResponse() { Mensaje = $"El credito {request.CodigoCredito} no existe" } } ; var errores = credito.CanAbonar(request.Valor); if (errores.Count == 0) { var respuesta = credito.Abonar(request.Valor); _unitOfWork.EmpleadoRepository.Edit(empleado); _unitOfWork.Commit(); return(new AbonarResponse() { Mensaje = respuesta }); } return(new AbonarResponse() { Mensaje = string.Join("-", errores) }); } else { return(new AbonarResponse() { Mensaje = $"El empleado {request.Cedula} no existe" }); } } }
public Response Abonar(AbonarRequest request) { Empleado empleado = empleadoService.GetEmpleado(request.CedulaEmpleado); if (empleado == null) { return(new Response() { Mensaje = $"El empleado con cedula {request.CedulaEmpleado} no se encuentra registrado en el sistema" }); } Credito credito = GetCredito(request.NumeroCredito, "Cuotas,Abonos"); if (credito == null) { return(new Response() { Mensaje = $"Señor {empleado.Nombre}, hasta el momento no tiene un credito de numero {request.NumeroCredito}" }); } var errores = credito.CanAbonar(request.Valor); if (errores.Count != 0) { return(new Response() { Mensaje = String.Join(",", errores) }); } string mensaje = credito.Abonar(request.Valor); _unitOfWork.Commit(); return(new Response() { Mensaje = mensaje }); }