/// <summary> /// Método para desplegar el menú de Opciones de Movimientos (Switch). /// </summary> /// <param name="_oNormal">Objeto de tipo cliente normal</param> /// <param name="_oUniversitario">Objeto de tipo cliente universitario</param> /// <param name="iTipoCuenta">tipo de cuenta (universitario o normal)</param> public static void OpcionMovimiento(Normal _oNormal, Universitario _oUniversitario, short iTipoCuenta) { bool lValidar = true; while (lValidar) { Console.WriteLine("\nSeleccione una operación a realizar:\n\n1. Retirar\n2. Depositar\n3. Consultar Saldo\n4. Menú Principal"); switch (Console.ReadLine()) { case "1": // Retirar Console.Clear(); Console.Write("Por favor indique el monto a retirar: "); try { decimal dMonto = Convert.ToDecimal(Console.ReadLine()); if (iTipoCuenta == 1) { _oNormal.Retirar(iIdCuenta, dMonto); // Método de la clase normal para retirar. } else if (iTipoCuenta == 2) { _oUniversitario.Retirar(iIdCuenta, dMonto); // Método de la clase universitario para retirar. } } catch (FormatException) { Console.WriteLine("Por favor ingrese un monto válido."); } lValidar = true; break; case "2": // Depositar Console.Clear(); Console.WriteLine("\nSeleccione el tipo de deposito:\n\n1. Deposito a otra cuenta\n2. Deposito a cuenta personal"); try { int _iOpcionDeposito = Convert.ToInt32(Console.ReadLine()); if (_iOpcionDeposito == 1) // Si se elige deposito a otra cuenta { Console.WriteLine("\nSeleccione el tipo de cuenta a depositar:\n\n1. Cuenta Normal\n2. Cuenta Universitaria"); try { int _iOpcionCuenta = Convert.ToInt32(Console.ReadLine()); int iIdCuentaDeposito; if (_iOpcionCuenta == 1) { iTipoCuenta = 1; iIdCuentaDeposito = _oNormal.ValidarNumeroCuenta(); // Se valida que exista la cuenta a la cual se desea depositar. if (iIdCuentaDeposito != -1) { string cConcepto = _oNormal.ObtenerConcepto(); // Se invoca al método que captura el concepto del deposito. bool verificador = true; while (verificador) { try { decimal dMonto = _oNormal.MontoDepositar(); // Se invoca al método que captura el monto a depositar. verificador = false; _oNormal.Depositar(iIdCuentaDeposito, iTipoCuenta, dMonto, cConcepto); // Se invoca al método que Depositar el cual hace la implementación de dicho método de la Interfaz IDepositar en la clase Normal. } catch (FormatException) { Console.WriteLine("\nPor favor ingrese un monto válido, intente de nuevo...\n"); verificador = true; } } } } else if (_iOpcionCuenta == 2) { iTipoCuenta = 2; iIdCuentaDeposito = _oUniversitario.ValidarNumeroCuenta(); // Se valida que exista la cuenta a la cual se desea depositar. if (iIdCuentaDeposito != -1) { string cConcepto = _oUniversitario.ObtenerConcepto(); // Se invoca al método que captura el concepto del deposito. bool verificador = true; while (verificador) { try { decimal dMonto = _oUniversitario.MontoDepositar(); // Se invoca al método que captura el monto a depositar. verificador = false; _oUniversitario.Depositar(iIdCuentaDeposito, iTipoCuenta, dMonto, cConcepto); // Se invoca al método que Depositar el cual hace la implementación de dicho método de la Interfaz IDepositar en la clase Universitario. lValidar = false; } catch (FormatException) { Console.WriteLine("\nPor favor ingrese un monto válido, intente de nuevo...\n"); verificador = true; } } } } else { Console.WriteLine("Por favor elija una opción valida."); } } catch (FormatException) { Console.WriteLine("Por favor elija una opción valida."); } } else if (_iOpcionDeposito == 2) // Si se elige deposito a la misma cuenta. { if (iTipoCuenta == 1) // Tipo de cuenta normal { bool verificador = true; while (verificador) { try { decimal dMonto = _oNormal.MontoDepositar(); // Se invoca al método que captura el monto a depositar. verificador = false; _oNormal.Depositar(iIdCuenta, iTipoCuenta, dMonto); // Se hace la instancia del objeto Normal para instanciar el método Depositar. } catch (FormatException) { Console.WriteLine("\nPor favor ingrese un monto válido, intente de nuevo...\n"); verificador = true; } } } else if (iTipoCuenta == 2) // Tipo de cuenta universitario. { bool verificador = true; while (verificador) { try { decimal dMonto = _oUniversitario.MontoDepositar(); // Se invoca al método que captura el monto a depositar. verificador = false; _oUniversitario.Depositar(iIdCuenta, iTipoCuenta, dMonto); // Se hace la instancia del objeto Universitario para instanciar el método Depositar. } catch (FormatException) { Console.WriteLine("\nPor favor ingrese un monto válido, intente de nuevo...\n"); verificador = true; } } } else { Console.WriteLine("Por favor elija una opción valida."); } } else { Console.WriteLine("Por favor elija una opción valida."); } } catch (FormatException) { Console.WriteLine("Por favor elija una opción valida."); } lValidar = false; break; case "3": // Consulta el saldo del cliente. Console.Clear(); if (iTipoCuenta == 1) { Console.WriteLine(_oNormal.ConsultarSaldo(_oNormal._lstNormal[iIdCuenta].dSaldo)); } else if (iTipoCuenta == 2) { Console.WriteLine(_oNormal.ConsultarSaldo(_oUniversitario._lstUniversitarios[iIdCuenta].dSaldo)); } lValidar = true; break; case "4": Console.Clear(); lValidar = false; break; default: Console.Clear(); Console.WriteLine("Por favor elija una opción valida."); lValidar = true; break; } } }