예제 #1
0
    //operaciones

    //redefine el metodo de la clase base
    public override void Ejecutar()      //realiza una transaccion
    {
        bool efectivoDispensado = false; //el efectivo no se ha dispensado aun

        //la transaccion no se ha cancelado aun
        bool transaccionCancelada = false;

        //itera hasta que se dispense efectivo o el usuario cancele
        do
        {
            //obtiene el monto elegido por el usuario
            int seleccion = MostrarMenuDeMontos();

            //comprueba si el usuario eligio un monto de retiro o cancelo
            if (seleccion != CANCELO)
            {
                //establece monto al monto seleccionado en dolares
                monto = seleccion;

                //obtiene el saldo disponible en la cuenta involucrada
                decimal saldoDisponible = BaseDatos.ObtenerSaldoDisponible(NumeroCuenta);

                //comprueba si el usuario tiene suficiente dinero
                if (monto <= saldoDisponible)
                {
                    //comprueba si el dispensador de efectivo tiene suficiente dinero
                    if (dispensadorEfectivo.HaySuficienteEfectivoDisponible(monto))
                    {
                        //carga a la cuenta para reflejar el retiro
                        BaseDatos.Cargar(NumeroCuenta, monto);

                        dispensadorEfectivo.DispensarEfectivo(monto); //dispensa efectivo
                        efectivoDispensado = true;                    //se dispenso efectivo

                        //instruye al usuario para que tome el efectivo
                        PantallaUsuario.MostrarLineaMensaje("\nPor favor tome su efectivo " +
                                                            "del dispensador.");
                    }

                    else //el dispensador no tiene suficiente efectivo
                    {
                        PantallaUsuario.MostrarLineaMensaje("\nNo hay suficiente dinero " +
                                                            "disponible en el ATM\n\nPor favor elija un monto mas pequeño.");
                    }
                }

                else //no hay suficiente dinero disponible en la cuenta del usuario
                {
                    PantallaUsuario.MostrarLineaMensaje("\nNo hay suficiente dinero disponible" +
                                                        "en su cuenta\n\nPor favor elija un monto mas pequeño.");
                }
            }

            else
            {
                PantallaUsuario.MostrarLineaMensaje("\nCancelando la transaccion...");
                transaccionCancelada = true; //el usuario cancelo la transaccion
            }
        } while ((!efectivoDispensado) && (!transaccionCancelada));
    }
예제 #2
0
        public override void Ejecutar()
        {
            bool efectivoDispensado   = false;
            bool transaccionCancelada = false;

            do
            {
                int seleccion = MostrarMenuDeMontos();

                if (seleccion != CANCELO)
                {
                    monto = seleccion;
                    decimal saldoDisponible = BaseDatos.GetSaldoDisponible(NumeroCuenta);

                    if (monto <= saldoDisponible)
                    {
                        if (dispensadorEfectivo.HayEfectivoDisponible(monto))
                        {
                            BaseDatos.Cargar(NumeroCuenta, monto);

                            dispensadorEfectivo.DispensarEfectivo(monto);
                            efectivoDispensado = true;


                            PantallaUsuario.MostrarLineaMensaje(
                                "\nPor favor agarre su efectivo.");
                        }
                        else
                        {
                            PantallaUsuario.MostrarLineaMensaje(
                                "\nNo hay suficiente efectivo disponible en el Cajero." +
                                "\n\nPor favor elija un monto valido.");
                        }
                    }
                    else
                    {
                        PantallaUsuario.MostrarLineaMensaje(
                            "\nNo hay suficiente efectivo disponible en su cuenta." +
                            "\n\nPor favor elija otro monto.");
                    }
                }
                else
                {
                    PantallaUsuario.MostrarLineaMensaje("\nCancelando la transacción...");
                    transaccionCancelada = true;
                }
            } while ((!efectivoDispensado) && (!transaccionCancelada));
        }