public void Setup()
 {
     empleado = new Empleado("1003195636", "Ivan Contreras", 1000000);
     var respuestaCredito = CreditoFactory.CanCrearCredito(6000000, 0.005, 10);
     if (respuestaCredito.Count == 0)
     {
         credito = CreditoFactory.CrearCredito(6000000, 0.005, 10);               
         if (credito != null) {
             credito.CodigoCredito = "0001";
             empleado.Creditos.Add(credito); 
         }
     }
 }
        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"
                });
            }
        }
예제 #3
0
        public void TestCaseCrearCredito(string cedula, string nombre, double salario, double valorCredito, double tasaInteres, int plazo, string mensajeEsperado)
        {
            Empleado empleado  = new Empleado(cedula, nombre, salario);
            var      respuesta = CreditoFactory.CanCrearCredito(valorCredito, tasaInteres, plazo);

            if (respuesta.Count == 0)
            {
                Credito credito = CreditoFactory.CrearCredito(valorCredito, tasaInteres, plazo);
                if (credito != null)
                {
                    respuesta.Add(mensajeEsperado);
                }
            }
            var obtenido = "";

            if (respuesta.Contains(mensajeEsperado))
            {
                obtenido = mensajeEsperado;
            }
            Assert.AreEqual(mensajeEsperado, obtenido);
        }
예제 #4
0
        static void Main(string[] args)
        {
            var factory = new CreditoFactory();

            var CreditoDireto = factory.GetCalculo(new
                                                   SolicitacaoCredito(50000, 5, new DateTime(2020, 3, 20), TipoCreditoEnum.CreditoDireto));
            var resultado = CreditoDireto.Calcular();

            PrintResultado(resultado);

            var creditoPessoaFisica = factory.GetCalculo(new
                                                         SolicitacaoCredito(50000, 5, new DateTime(2020, 3, 20), TipoCreditoEnum.CreditoPessoaFisica));

            resultado = creditoPessoaFisica.Calcular();
            PrintResultado(resultado);

            var creditoPessoaJuridica = factory.GetCalculo(new
                                                           SolicitacaoCredito(50000, 5, new DateTime(2020, 3, 20), TipoCreditoEnum.CreditoPessoaJuridica));

            resultado = creditoPessoaJuridica.Calcular();
            PrintResultado(resultado);

            var creditoImobiliario = factory.GetCalculo(new
                                                        SolicitacaoCredito(50000, 5, new DateTime(2020, 3, 20), TipoCreditoEnum.CreditoImobiliario));

            resultado = creditoImobiliario.Calcular();
            PrintResultado(resultado);


            var creditoConsignado = factory.GetCalculo(new
                                                       SolicitacaoCredito(50000, 5, new DateTime(2020, 3, 20), TipoCreditoEnum.CreditoConsignado));

            resultado = creditoConsignado.Calcular();
            PrintResultado(resultado);

            Console.WriteLine("Fim");
            Console.ReadKey();
        }