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); } } }