コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        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);
        }