public StringBuilder ExcluirPassageiro(Passageiro passageiro) { StringBuilder mensagemRetorno = new StringBuilder(); if (passageiro != null) { Passageiros.Remove(passageiro); mensagemRetorno.AppendFormat("\n-----> O passageiro {0} {1} foi removido com sucesso do voo.\n", passageiro.Nome, passageiro.Sobrenome); if (FilaEspera.Count > 0) { Passageiro passageiroFilaEspera = FilaEspera.Dequeue() as Passageiro; passageiroFilaEspera.NumeroPoltrona = passageiro.NumeroPoltrona; Passageiros.Add(passageiroFilaEspera); mensagemRetorno.AppendFormat("\n-----> O passageiro {0} {1} saiu da fila de espera e foi adicionado no voo {2}, com horário de {3} e a poltrona de número {4}.\n", passageiroFilaEspera.Nome, passageiroFilaEspera.Sobrenome, passageiroFilaEspera.NumeroVoo, passageiroFilaEspera.HorarioVoo, passageiroFilaEspera.NumeroPoltrona); } } else { mensagemRetorno.AppendLine("\n-----> O passageiro informado não foi localizado no voo.\n"); } return(mensagemRetorno); }
public string AdicionarPassageiroVoo(Passageiro passageiro) { string mensagemRetorno = string.Empty; if (Passageiros.Count < 5) { Passageiros.Add(passageiro); mensagemRetorno = "\nPassageiro adicionado no voo com sucesso!\n"; } else if (FilaEspera.Count < 5) { FilaEspera.Enqueue(passageiro); mensagemRetorno = string.Format("\nO número de passageiros do voo está completo, por esse motivo você foi adicionado na {0} posição da lista de espera e caso algum passageiro desista do voo você poderá ser incluído.\n", FilaEspera.Count); } return(mensagemRetorno); }
/// <summary> /// Adiciona o passageiro no voo /// </summary> /// <param name="passageiro">Passageiro que será adicionado no voo</param> /// <returns>Informações sobre o passageiro adicionado no voo</returns> public string AdicionarPassageiroVoo(Passageiro passageiro) { string mensagemRetorno = string.Empty; //Se a lista não está cheia (5 passageiros), adicionamos o passageiro na lista e retornarmos a mensagem de sucesso. if (Passageiros.Count < 5) { Passageiros.Add(passageiro); mensagemRetorno = "\nPassageiro adicionado no voo com sucesso!\n"; } else if (FilaEspera.Count < 5) { //Caso a lista de passageiros esteja completa, adicionamos o passageiro na fila de espera. FilaEspera.Enqueue(passageiro); mensagemRetorno = string.Format("\nO número de passageiros do voo está completo, por esse motivo você foi adicionado na {0} posição da lista de espera e caso algum passageiro desista do voo você poderá ser incluído.\n", FilaEspera.Count); } return(mensagemRetorno); }
/// <summary> /// Método para excluir um passageiro da lista e adicionar o próximo passageiro da fila de espera no voo /// </summary> /// <param name="passageiro">Passageiro que será excluído da lista</param> /// <returns>Informações sobre a exclusão</returns> public StringBuilder ExcluirPassageiro(Passageiro passageiro) { StringBuilder mensagemRetorno = new StringBuilder(); //Se possui um passageiro para ser excluído if (passageiro != null) { //Removemos o passageiro da lista Passageiros.Remove(passageiro); mensagemRetorno.AppendFormat("\n-----> O passageiro {0} {1} foi removido com sucesso do voo.\n", passageiro.Nome, passageiro.Sobrenome); //Se a fila de espera possuir registro if (FilaEspera.Count > 0) { //Removemos o primeiro passageiro da fila de espera Passageiro passageiroFilaEspera = FilaEspera.Dequeue() as Passageiro; //Passageiro que foi adicionado no voo pega a poltrona do passageiro que desistiu do voo passageiroFilaEspera.NumeroPoltrona = passageiro.NumeroPoltrona; //Adicionamos esse passageiro na lista de passageiros do voo Passageiros.Add(passageiroFilaEspera); mensagemRetorno.AppendFormat("\n-----> O passageiro {0} {1} saiu da fila de espera e foi adicionado no voo {2}, com horário de {3} e a poltrona de número {4}.\n", passageiroFilaEspera.Nome, passageiroFilaEspera.Sobrenome, passageiroFilaEspera.NumeroVoo, passageiroFilaEspera.HorarioVoo, passageiroFilaEspera.NumeroPoltrona); } } else { mensagemRetorno.AppendLine("\n-----> O passageiro informado não foi localizado no voo.\n"); } return(mensagemRetorno); }
static void ProcessarVoos(Voo vooSelecionado) { Passageiro passageiro; ConsoleKeyInfo teclaPressionada; Console.Clear(); do { Console.WriteLine("---------------------------> EMPRESA AÉREA QUEDA LIVRE\t\t {0} <---------------------------\n", vooSelecionado.NomeVoo); Console.WriteLine("-----------> MENU DE OPÇÕES\n"); Console.WriteLine(" [F1] Lista de Passageiros"); Console.WriteLine(" [F2] Pesquisar"); Console.WriteLine(" [F3] Cadastrar Passageiros"); Console.WriteLine(" [F4] Excluir Passageiro da Lista"); Console.WriteLine(" [F5] Mostrar Fila de Espera"); Console.WriteLine(" [F6] Selecionar outro voo"); Console.WriteLine("[ESC] SAIR"); teclaPressionada = Console.ReadKey(); switch (teclaPressionada.Key) { case ConsoleKey.F1: Console.Clear(); StringBuilder textoListaVoos = vooSelecionado.ListarPassageiros(); Console.WriteLine(textoListaVoos.ToString()); textoListaVoos.Clear(); break; case ConsoleKey.F2: Console.Clear(); int cpf; Console.Write("Informe o CPF do passageiro que deseja buscar: "); if (int.TryParse(Console.ReadLine(), out cpf)) { Passageiro passageiroPesquisa = vooSelecionado.Passageiros.Cast <Passageiro>().FirstOrDefault(a => a.CPF == cpf); if (passageiroPesquisa != null) { StringBuilder dadosPassageiro = passageiroPesquisa.RetornarDadosPassageiro(); Console.WriteLine(dadosPassageiro.ToString()); dadosPassageiro.Clear(); } else { Console.WriteLine("Passageiro não localizado neste voo!"); } } else { Console.WriteLine("O CPF do passageiro está no formato incorreto, por favor preencha novamente."); break; } break; case ConsoleKey.F3: Console.Clear(); if (vooSelecionado.VerificarSeFilaEsperaPossuiEspaco()) { int inteiroAuxiliar; string textoAuxiliar = string.Empty; passageiro = new Passageiro(); passageiro.NumeroVoo = vooSelecionado.NumeroVoo; passageiro.HorarioVoo = vooSelecionado.HorarioVoo; passageiro.NumeroPoltrona = Voo.BuscarProximaPoltronaVazia(); Console.Write("Informe o CPF do passageiro: "); if (int.TryParse(Console.ReadLine(), out inteiroAuxiliar)) { if (vooSelecionado.Passageiros.Cast <Passageiro>().Any(a => a.CPF == inteiroAuxiliar)) { Console.WriteLine("Já existe um passageiro cadastrado no voo com o CPF informado, por favor informe outro CPF válido."); break; } else { passageiro.CPF = inteiroAuxiliar; } } else { Console.WriteLine("O CPF do passageiro está no formato incorreto, por favor preencha novamente."); break; } Console.Write("Informe o nome do passageiro: "); textoAuxiliar = Console.ReadLine(); if (!string.IsNullOrWhiteSpace(textoAuxiliar)) { passageiro.Nome = textoAuxiliar; } else { Console.WriteLine("O nome do passageiro é de preenchimento obrigatório."); break; } Console.Write("Informe o sobrenome do passageiro: "); textoAuxiliar = Console.ReadLine(); if (!string.IsNullOrWhiteSpace(textoAuxiliar)) { passageiro.Sobrenome = textoAuxiliar; } else { Console.WriteLine("O sobrenome do passageiro é de preenchimento obrigatório."); break; } Console.Write("Informe o endereço do passageiro: "); textoAuxiliar = Console.ReadLine(); if (!string.IsNullOrWhiteSpace(textoAuxiliar)) { passageiro.Endereco = textoAuxiliar; } else { Console.WriteLine("O endereço do passageiro é de preenchimento obrigatório."); break; } Console.Write("Informe o telefone do passageiro: "); textoAuxiliar = Console.ReadLine(); if (!string.IsNullOrWhiteSpace(textoAuxiliar)) { passageiro.Telefone = textoAuxiliar; } else { Console.WriteLine("O telefone do passageiro é de preenchimento obrigatório."); break; } Console.Write("Informe o número da passagem do passageiro: "); if (int.TryParse(Console.ReadLine(), out inteiroAuxiliar)) { if (vooSelecionado.Passageiros.Cast <Passageiro>().Any(a => a.CPF == inteiroAuxiliar)) { Console.WriteLine("Já existe um passageiro cadastrado no voo com o número de passagem informado, por favor informe outro número de passagem válido."); break; } else { passageiro.NumeroPassagem = inteiroAuxiliar; } } else { Console.WriteLine("O número da passagem do passageiro está no formato incorreto, por favor tente novamente."); break; } Console.WriteLine(vooSelecionado.AdicionarPassageiroVoo(passageiro)); } else { Console.WriteLine("\nA reserva do voo não pode ser feita, pois o voo e a lista de espera estão completos!\n"); } break; case ConsoleKey.F4: Console.Clear(); int cpfExcluir; Console.Write("Informe o CPF do passageiro que deseja cancelar o voo: "); if (int.TryParse(Console.ReadLine(), out cpfExcluir)) { Passageiro passageiroExcluir = vooSelecionado.Passageiros.Cast <Passageiro>().FirstOrDefault(a => a.CPF == cpfExcluir); StringBuilder mensagemExclusao = vooSelecionado.ExcluirPassageiro(passageiroExcluir); Console.WriteLine(mensagemExclusao.ToString()); mensagemExclusao.Clear(); } else { Console.WriteLine("O CPF do passageiro está no formato incorreto, por favor preencha novamente."); break; } break; case ConsoleKey.F5: Console.Clear(); StringBuilder textoFilaEspera = vooSelecionado.ListarFilaEspera(); Console.WriteLine(textoFilaEspera.ToString()); textoFilaEspera.Clear(); break; case ConsoleKey.F6: Console.Clear(); return; default: Console.Clear(); Console.WriteLine("\nOpção incorreta, por favor insira uma opção válida e tente novamente!"); break; } } while (teclaPressionada.Key != ConsoleKey.Escape); }