// Obs: Não foi possível implementar o primeiro requisito do segundo parágrafo //ou seja, assim que o programa iniciar, mostrar os aniversariantes do dia, //visto que é necessário carregar a agenda primeiro. Além disso, o Menu Inicial perderia sua função de looping, //no caso de haver muitos aniversariantes no dia. //Dessa forma, foi oferecida a opção de mostrar os aniversariantes do dia numa página dedicada. static void Main(string[] args) { Agenda agenda = new Agenda(); Arquivo repositorio = new Arquivo(); int opcao = 0; const string diretorio = @"D:\agenda.txt"; // Obtem o arquivo para verificar se há aniversariantes no dia. agenda = repositorio.ObterAgendaDeArquivo(diretorio); // Exibe aniversariantes do dia. AniversariantesDoDia(agenda); do // Enquanto se desejar o menu vai ficar rodando { Console.WriteLine("\n"); Console.WriteLine("\t\t"+DateTime.Now); Console.WriteLine("\n\n"); Console.WriteLine("\n\t\tGeranciador de Aniversários.\n"); Console.WriteLine("\t\tSelecione uma das opções abaixo:\n"); Console.WriteLine("\t\t1 - Adicionar nova pessoa.\n" + "\t\t2 - Buscar pessoa pelo nome ou sobrenome.\n" + "\t\t3 - Editar dados da Pessoa.\n" + "\t\t4 - Apagar pessoa da agenda.\n" + "\t\t5 - Imprimir agenda.\n" + "\t\t6 - Carregar agenda de arquivo.\n" + "\t\t7 - Gravar agenda em arquivo.\n" + "\t\t8 - Abrir arquivo.\n" + "\t\t9 - Aniversariantes do Dia.\n" + "\t\t0 - Sair.\n"); Console.WriteLine("\n\n\n\t\tQuantidade de pessoas na agenda: "+ agenda.ObterQuantidadePessoas()); opcao = int.Parse(Console.ReadLine()); // Captura a opção escolhida pelo usuário // Opções do menu e seus comandos a serem executados, de a cordo com a opção escolhida pelo usuário switch (opcao) { case 1: // Adiciona nova pessoa na agenda Console.Clear(); AdicionarPessoa(agenda); break; case 2: // Busca pessoa pelo nome ou sobrenome Console.Clear(); BuscarPessoasPeloNome(agenda); break; case 3: // Edita os dados de uma determinada pessoa Console.Clear(); EditarPessoa(agenda); break; case 4: // Apaga pessoa da agenda Console.Clear(); DeletarPessoa(agenda); break; case 5: // Imprime toda a agenda Console.Clear(); ImprimirAgenda(agenda); break; case 6: // Carrega agenda de arquivo já salvo Console.Clear(); agenda = repositorio.ObterAgendaDeArquivo(diretorio); Console.WriteLine("Agenda carregada com sucesso!"); break; case 7: // Grava agenda em arquivo Console.Clear(); repositorio.GravarAgendaEmArquivo(agenda, diretorio); Console.WriteLine("Agenda gravada com sucesso!"); break; case 8: // Abre arquivo da agenda apenas para leitura (se editar o arquivo ele será inutilizado!!!) Console.Clear(); System.Diagnostics.Process.Start(diretorio); Console.WriteLine("Arquivo texto aberto!"); Console.WriteLine("IMPORTANTE: É apenas para você olha ele, lembre de fechar antes de gravar novamente!"); break; case 9: // Exibe os aniversariantes do dia Console.Clear(); AniversariantesDoDia(agenda); break; } } while (opcao != 0); // Digitando o número ZERO o programa é encerrado }