public CrearCuentaAhorroResponse Ejecutar(CrearCuentaAhorroRequest request)
        {
            ServicioFinanciero cuenta = _unitOfWork.ServicioFinancieroRepository.FindFirstOrDefault(t => t.Numero == request.Numero);

            if (cuenta == null)
            {
                ServicioFinanciero cuentaNueva = new CuentaAhorro(); ///CuentaBancariaFactory().Create(request.TipoCuenta);//Debe ir un factory que determine que tipo de cuenta se va a crear
                cuentaNueva.Nombre           = request.Nombre;
                cuentaNueva.Numero           = request.Numero;
                cuentaNueva.CiudadDeCreacion = request.Ciudad;
                cuentaNueva.Saldo            = request.Saldo;
                cuentaNueva.FechaCreacion    = request.FechaCreacion;

                _unitOfWork.ServicioFinancieroRepository.Add(cuentaNueva);
                _unitOfWork.Commit();
                return(new CrearCuentaAhorroResponse()
                {
                    Mensaje = $"Se creó con exito la cuenta {cuentaNueva.Numero}"
                });
            }
            else
            {
                return(new CrearCuentaAhorroResponse()
                {
                    Mensaje = $"El número de cuenta ya existe"
                });
            }
        }
Exemple #2
0
        private ServicioFinanciero InicializarServicioFinanciero(ServicioFinanciero servicioFinanciero, CrearServicioFinancieroRequest request)
        {
            servicioFinanciero.Nombre = request.Nombre;
            servicioFinanciero.Numero = request.Numero;
            servicioFinanciero.Ciudad = request.Ciudad;
            switch (request.TipoCuenta)
            {
            case (int)ServicioFinancieroEnum.CUENTA_DE_AHORROS: return(servicioFinanciero);

            case (int)ServicioFinancieroEnum.CUENTA_CORRIENTE:
                CuentaCorriente cuentaCorriente = (CuentaCorriente)servicioFinanciero;
                cuentaCorriente.CupoDeSobregiro = request.CupoDeSobregiro;
                return(cuentaCorriente);

            case (int)ServicioFinancieroEnum.CERTIFICADO_DE_DEPOSITO_A_TERMINO:
                CertificadoDeDepositoATermino cdt = (CertificadoDeDepositoATermino)servicioFinanciero;
                cdt.DiasDeTermino = request.DiasDeTermino;
                return(cdt);

            case (int)ServicioFinancieroEnum.TARJETA_DE_CREDITO:
                TarjetaDeCredito tarjetaDeCredito = (TarjetaDeCredito)servicioFinanciero;
                tarjetaDeCredito.ContratarCupo(request.CupoPreAprobado);
                return(tarjetaDeCredito);

            default: throw new InvalidOperationException();
            }
        }
Exemple #3
0
        public CrearCuentaCorrienteResponse Ejecutar(CrearCuentaCorrienteRequest request)
        {
            ServicioFinanciero cuenta = _unitOfWork.ServicioFinancieroRepository.FindFirstOrDefault(t => t.Numero == request.Numero);

            if (cuenta == null)
            {
                CuentaCorriente cuentaCorriente = new CuentaCorriente();
                cuentaCorriente.Numero           = request.Numero;
                cuentaCorriente.Nombre           = request.Nombre;
                cuentaCorriente.CiudadDeCreacion = request.Ciudad;
                cuentaCorriente.Saldo            = request.Saldo;
                cuentaCorriente.TopeGiro         = request.TopeGiro;
                cuentaCorriente.FechaCreacion    = request.FechaCreacion;

                _unitOfWork.ServicioFinancieroRepository.Add(cuentaCorriente);
                _unitOfWork.Commit();
                return(new CrearCuentaCorrienteResponse()
                {
                    Mensaje = $"Se creó con exito la cuenta {cuentaCorriente.Numero}"
                });
            }
            else
            {
                return(new CrearCuentaCorrienteResponse()
                {
                    Mensaje = $"El número de cuenta ya exite"
                });
            }
        }
Exemple #4
0
        public CrearServicioFinancieroResponse Ejecutar(CrearServicioFinancieroRequest request)
        {
            ServicioFinanciero cuenta = _unitOfWork.CuentaBancariaRepository.FindFirstOrDefault(t => t.Numero == request.Numero);

            if (cuenta == null)
            {
                try
                {
                    ServicioFinanciero cuentaNueva = (ServicioFinanciero)servicioFinancieroFactory.GetServicioFinanciero(request.TipoCuenta);                    //Debe ir un factory que determine que tipo de cuenta se va a crear
                    cuentaNueva = InicializarServicioFinanciero(cuentaNueva, request);
                    _unitOfWork.CuentaBancariaRepository.Add(cuentaNueva);
                    _unitOfWork.Commit();
                    return(new CrearServicioFinancieroResponse()
                    {
                        Mensaje = $"Se creó con exito la cuenta {cuentaNueva.Numero}."
                    });
                }
                catch (System.Exception)
                {
                    return(new CrearServicioFinancieroResponse()
                    {
                        Mensaje = $"El tipo de servicio eligido, no existe"
                    });
                }
            }
            else
            {
                return(new CrearServicioFinancieroResponse()
                {
                    Mensaje = $"El número de cuenta ya exite"
                });
            }
        }
Exemple #5
0
        public CrearCertificadoDepositoTerminoServiceResponse Ejecutar(CrearCertificadoDepositoTerminoServiceRequest request)
        {
            ServicioFinanciero cuenta = _unitOfWork.ServicioFinancieroRepository.FindFirstOrDefault(t => t.Numero == request.Numero);

            if (cuenta == null)
            {
                CertificadoDepositoATermino cdt = new CertificadoDepositoATermino();
                cdt.Numero            = request.Numero;
                cdt.Nombre            = request.Nombre;
                cdt.CiudadDeCreacion  = request.Ciudad;
                cdt.Saldo             = request.Saldo;
                cdt.TasaEfectivaAnual = request.TasaEfectivaAnual;
                cdt.TerminoDefinido   = request.TerminoDefinido;
                cdt.FechaCreacion     = request.FechaCreacion;

                _unitOfWork.ServicioFinancieroRepository.Add(cdt);
                _unitOfWork.Commit();
                return(new CrearCertificadoDepositoTerminoServiceResponse()
                {
                    Mensaje = $"Se creo con Exito el Servicio Finaciero {cdt.Numero}."
                });
            }
            else
            {
                return(new CrearCertificadoDepositoTerminoServiceResponse()
                {
                    Mensaje = $"El Servicio Financiero {request.Numero} ya existe"
                });
            }
        }