public CrearCreditoResponse Ejecutar(CrearCreditoRequest request)
        {
            Empleado empleado = _unitOfWork.EmpleadoRepository.FindFirstOrDefault(x => x.Cedula == request.Cedula);

            if (empleado != null)
            {
                Credito credito = empleado.Creditos.Find(x => x.CodigoCredito == request.CodigoCredito);
                if (credito == null)
                {
                    var errores = CreditoFactory.CanCrearCredito(request.Valor, request.TasaInteres, request.PlazoMeses);
                    if (errores.Count == 0)
                    {
                        Credito creditoNuevo = CreditoFactory.CrearCredito(request.Valor, request.TasaInteres, request.PlazoMeses);
                        creditoNuevo.CodigoCredito = request.CodigoCredito;
                        empleado.Creditos.Add(creditoNuevo);
                        _unitOfWork.EmpleadoRepository.Edit(empleado);
                        // _unitOfWork.CreditoRepository.Add(creditoNuevo);
                        _unitOfWork.Commit();
                        return(new CrearCreditoResponse()
                        {
                            Mensaje = $"Su credito {creditoNuevo.CodigoCredito} por valor de {creditoNuevo.Valor} se registro correctamente"
                        });
                    }
                    return(new CrearCreditoResponse()
                    {
                        Mensaje = string.Join("-", errores)
                    });
                }
                else
                {
                    return(new CrearCreditoResponse()
                    {
                        Mensaje = $"ya existe un credito registrado con este numero {request.CodigoCredito}"
                    });
                }
            }
            else
            {
                return(new CrearCreditoResponse()
                {
                    Mensaje = $"El empleado {request.Cedula} no existe"
                });
            }
        }
Example #2
0
        public Response CrearCredito(CrearCreditoRequest request)
        {
            Empleado empleado = empleadoService.GetEmpleado(request.CedulaEmpleado);

            if (empleado == null)
            {
                return(new Response()
                {
                    Mensaje = $"El número de cedula {request.CedulaEmpleado} no existe"
                });
            }
            Credito credito = GetCredito(request.Numero);

            if (credito != null)
            {
                return(new Response()
                {
                    Mensaje = $"El número de credito {request.Numero} ya existe"
                });
            }
            var errores = CreditBuilder.CanCreateCredit(request.Valor, request.Plazo, request.TasaDeInteres);

            if (errores.Any())
            {
                return(new Response()
                {
                    Mensaje = String.Join(",", errores)
                });
            }
            Credito credritoNuevo = CreditBuilder.CrearCredito(request.Valor, request.Plazo, request.TasaDeInteres);

            credritoNuevo.Numero = request.Numero;
            empleado.Creditos.Add(credritoNuevo);
            _unitOfWork.EmpleadoRepository.Edit(empleado);
            _unitOfWork.Commit();
            return(new Response()
            {
                Mensaje = $"El valor a total para el crédito es ${credritoNuevo.ValorAPagar}"
            });
        }
        public CrearCreditoResponse Ejecutar(CrearCreditoRequest request)
        {
            Credito credito = _unitOfWork.CreditoRepository.FindFirstOrDefault(t => t.Cedula == request.Cedula);

            if (credito != null)
            {
                return new CrearCreditoResponse()
                       {
                           Mensaje = $"El numero de credito {request.Cedula} ya existe."
                       }
            }
            ;

            try
            {
                Credito newCredit = _factory.CreateEntity(request.TipoCredito);

                newCredit.Cedula        = request.Cedula;
                newCredit.Fecha         = request.Fecha;
                newCredit.ValorPrestamo = request.ValorPrestamo;
                newCredit.PlazoPago     = request.PlazoPago;
                newCredit.Salario       = request.Salario;
                newCredit.Nombre        = request.Nombre;
                _unitOfWork.CreditoRepository.Add(newCredit);
                newCredit.Validar(request.ValorPrestamo, request.PlazoPago);
                _unitOfWork.Commit();
                return(new CrearCreditoResponse()
                {
                    Mensaje = $"Se creó con exito el credito {newCredit.Cedula}."
                });
            }
            catch (System.Exception ex)
            {
                return(new CrearCreditoResponse()
                {
                    Mensaje = ex.Message
                });
            }
        }
    }