public static bool ComprarPassagem(string tipo, int posicaoCliente, string numVoo) { DateTime dt = DateTime.Now; switch (tipo) { case "Normal": Voo.InsereReserva(dt, posicaoCliente, numVoo, 1); return(true); case "Promocional": Voo.InsereReserva(dt, posicaoCliente, numVoo, 2); return(true); case "Fidelidade": if (clientes[posicaoCliente].PtosSaldo >= 10000) { Voo.InsereReserva(dt, posicaoCliente, numVoo, 3); return(true); } else { return(false); } default: return(false); } }
private void buttonEnviarCidades_Click(object sender, EventArgs e) { bool verifica = ProgramaFidelidade.ComprarPassagem(cb_formapgto.Text, posicaoCliente, ProgramaFidelidade.LocalizaIdVoo(comboBoxCidadeOrigem.Text, comboBoxCidadeDestino.Text).IdentificaVoo); //ProgramaFidelidade.PreencheDados("reservas.txt"); //ProgramaFidelidade.ExibirDadosCliente(posicaoCliente); if (cb_formapgto.SelectedItem == null || comboBoxCidadeDestino.SelectedItem == null || comboBoxCidadeOrigem.SelectedItem == null || textBoxExibirViagens == null) { MessageBox.Show("Você precisa completar os dados necessários!", "Erro!", MessageBoxButtons.OK); } else if (verifica == false) { MessageBox.Show("Houve um erro ao efetuar a compra!", "Erro!", MessageBoxButtons.OK); } else { Voo aux = ProgramaFidelidade.LocalizaIdVoo(comboBoxCidadeOrigem.Text, comboBoxCidadeDestino.Text); //Cria um voo de acordo com o tipo escolhido if (cb_formapgto.Text == "Normal") { aux = new Normal(aux.IdentificaVoo, aux.CidadeOrigem, aux.CidadeDestino, DateTime.Now); } else if (cb_formapgto.Text == "Promocional") { aux = new Promocional(aux.IdentificaVoo, aux.CidadeOrigem, aux.CidadeDestino, DateTime.Now); } else if (cb_formapgto.Text == "Fidelidade") { aux = new Fidelidade(aux.IdentificaVoo, aux.CidadeOrigem, aux.CidadeDestino, DateTime.Now); //No caso subtrai o valor da compra (a constante 10.000) do voo no saldo } //Adiciona o novo tipo de voo dentro da lista do cliente ProgramaFidelidade.clientes[posicaoCliente].Voos.Add(aux); //Soma o Bonus da compra ProgramaFidelidade.clientes[posicaoCliente].PtosSaldo += aux.Bonus; this.Close(); MenuEscolhas form = new MenuEscolhas(posicaoCliente); form.Show(); } }
public static Voo LocalizaIdVoo(string origem, string destino) { //Caso não encontre, retorna um Voo com variaveis vazias Voo aux = new Voo("", "", ""); try { for (int i = 0; i < voos.Count; i++) { //Localiza o Voo de acordo com sua cidade de origem e destino if (voos[i].CidadeOrigem == origem && voos[i].CidadeDestino == destino) { return(voos[i]); //break; } } return(aux); } catch { return(aux); } }
//Método que recebe o nome do arquivo e faz a leitura devida public static void PreencheDados(string nomeArquivo) { string txtAuxiliar; string[] campos; StreamReader arquivo = new StreamReader(nomeArquivo); while (!arquivo.EndOfStream) { try { txtAuxiliar = arquivo.ReadLine(); campos = txtAuxiliar.Split(';'); //Se o arquivo for de pessoas if (nomeArquivo == "pessoas.txt") { //Cria novos clientes e adiciona na lista de clientes do Programa Cliente cliente = new Cliente(campos[1], campos[0]); Clientes.Add(cliente); } //Se o arquivo for de voos else if (nomeArquivo == "voos.txt") { //Cria novos voos e adiciona na lista de voos disponíveis para compra do Programa Voo viagem = new Voo(campos[0], campos[1], campos[2]); voos.Add(viagem); } //Se o arquivo for o de reservas else if (nomeArquivo == "reservas.txt") { //Percorre a lista de clientes for (int i = 0; i < clientes.Count; i++) { //Se o cpf recebido for o mesmo do cliente if (campos[1] == clientes[i].Cpf) { //Percorre a lista de voos for (int j = 0; j < voos.Count; j++) { //Se o id do voo for o mesmo da lista de voos disponíveis if (campos[0] == voos[j].IdentificaVoo) { //Verifica o tipo do voo if (campos[3] == "1") { //Adiciona na lista de voos do cliente o voo já comprado clientes[i].Voos.Add(new Normal(voos[j].IdentificaVoo, voos[j].CidadeOrigem, voos[j].CidadeDestino, insereData(campos[2]))); } else if (campos[3] == "2") { clientes[i].Voos.Add(new Promocional(voos[j].IdentificaVoo, voos[j].CidadeOrigem, voos[j].CidadeDestino, insereData(campos[2]))); } else if (campos[3] == "3") { clientes[i].Voos.Add(new Fidelidade(voos[j].IdentificaVoo, voos[j].CidadeOrigem, voos[j].CidadeDestino, insereData(campos[2]))); } //Se já entrou o cliente e todos os voos que ele comprou, interrompe o loop break; } } } } } //Se o arquivo for de cidade else { //Cria uma nova cidade e adiciona na lista de cidades no programa Cidade cidade = new Cidade(campos[0]); Cidades.Add(cidade); } } catch (FileNotFoundException e) { throw; } } arquivo.Close(); }