Esempio n. 1
0
        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"
                });
            }
        }
    }
Esempio n. 2
0
        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
            });
        }