public ServicoSaque(int numeroDaConta)
 {
     NumeroDaConta  = numeroDaConta;
     ServicoTela    = new ServicoTela();
     ServicoTeclado = new ServicoTeclado();
     ServicoDispensadorDeCedulas = new ServicoDispensadorDeCedulas();
     ServicoBancoDeDadosDoBanco  = new ServicoBancoDeDadosDoBanco();
 }
        public void Executar()
        {
            int opcSaque = 0;

            while (opcSaque != 6)
            {
                ServicoTela.MostrarMensagemLinha("");
                //Mostrar opcoes
                MostrarMenuDeValores();
                //Pedir opcao
                try
                {
                    opcSaque = ServicoTeclado.ObterEntrada();
                    decimal valorSaque = 0;
                    switch (opcSaque)
                    {
                    case 1:
                        valorSaque = 20;
                        break;

                    case 2:
                        valorSaque = 40;
                        break;

                    case 3:
                        valorSaque = 60;
                        break;

                    case 4:
                        valorSaque = 100;
                        break;

                    case 5:
                        valorSaque = 200;
                        break;

                    case 6:
                        valorSaque = 0;
                        break;

                    default:
                        valorSaque = 0;
                        break;
                    }

                    if (valorSaque > 0)
                    {
                        //Consulta Saldo Diponivel
                        if (ServicoBancoDeDadosDoBanco.ConsultarSaldoDisponivel(NumeroDaConta, valorSaque))
                        {
                            //Verifica se o dispensador tem celulas suficientes
                            if (ServicoDispensadorDeCedulas.TemCedulasSuficienteDisponiveis(valorSaque))
                            {
                                try
                                {
                                    //Efetuar Saque
                                    ServicoBancoDeDadosDoBanco.Sacar(NumeroDaConta, valorSaque);
                                    //Dispensar Cedulas
                                    ServicoDispensadorDeCedulas.DispensarCedulas(valorSaque);
                                    //Avisar que saque foi realizado
                                    ServicoTela.MostrarMensagemLinhaEspera("Saque realizado com sucesso! Retire o dinheiro!");
                                    //Sair
                                    opcSaque = 6;
                                }
                                catch (Exception ex)
                                {
                                    ServicoTela.MostrarMensagemLinhaEspera(ex.Message);
                                }
                            }
                            else
                            {
                                ServicoTela.MostrarMensagemLinhaEspera("Não há cedulas suficientes para realizar este saque! Escolha um valor menor.");
                            }
                        }
                        else
                        {
                            ServicoTela.MostrarMensagemLinhaEspera("Saldo insuficiente! Escolha um valor menor.");
                        }
                    }
                }
                catch (Exception ex)
                {
                    ServicoTela.MostrarMensagemLinhaEspera(ex.Message);
                }
            }
        }