Example #1
0
        static void Main(string[] args)
        {
            Console.Title = "Agenda Telefônica";
            ContatoDAO contatoDAO = new ContatoDAO();

            contatoDAO.CriarBanco();
            bool           continuarExecucao = true;
            List <Contato> contatos          = contatoDAO.RecuperarTodos();

            Utilidades.ExibirContatos(contatos);

            while (continuarExecucao)
            {
                if (contatos.Count == 0)
                {
                    Console.Write("O que deseja fazer (1-Adicionar, 5-Encerrar Aplicação)? ");
                }
                else
                {
                    Console.Write("O que deseja fazer (1-Adicionar, 2-Alterar, 3-Excluir, 4-Consultar, 5-Encerrar Aplicação)? ");
                }

                int acao = 0;
                try
                {
                    acao = int.Parse(Console.ReadLine());
                    switch (acao)
                    {
                    case 1:
                        Console.WriteLine("Insira os dados do contato");
                        Console.Write("Nome(Obrigatório):");
                        nome = Console.ReadLine().Trim();
                        Console.Write("Endereço: ");
                        endereco = Console.ReadLine().Trim();
                        Console.Write("Telefone(Obrigatório): ");
                        telefone = Console.ReadLine().Trim();
                        if (ValidarContato())
                        {
                            Contato contato = new Contato(nome, endereco, telefone);
                            contatos = contatoDAO.Inserir(contato);
                        }

                        Utilidades.LimparTela();
                        Utilidades.ExibirContatos(contatos);

                        break;

                    case 2:
                        if (contatos.Count > 0)
                        {
                            Console.Write("Digite o ID do contato que deseja alterar: ");
                            int idAlterar = int.Parse(Console.ReadLine());
                            if (idAlterar <= contatos.Count)
                            {
                                Console.WriteLine("Entre com os novos dados (Caso não deseje alterar um dos campos, mantenha o valor em branco.)");

                                Console.Write("Nome: ");
                                nome = Console.ReadLine().Trim();
                                if (!string.IsNullOrWhiteSpace(nome))
                                {
                                    contatos[idAlterar - 1].Nome = nome;
                                }

                                Console.Write("Endereço: ");
                                endereco = Console.ReadLine().Trim();
                                if (!string.IsNullOrWhiteSpace(endereco))
                                {
                                    contatos[idAlterar - 1].Endereco = endereco;
                                }

                                Console.Write("Telefone: ");
                                telefone = Console.ReadLine().Trim();
                                if (!string.IsNullOrWhiteSpace(telefone))
                                {
                                    contatos[idAlterar - 1].Telefone = telefone;
                                }

                                contatos = contatoDAO.Alterar(contatos[idAlterar - 1]);
                            }
                            else
                            {
                                Console.WriteLine("Esse ID de contato não existe!");
                            }

                            Utilidades.LimparTela();
                        }
                        else
                        {
                            Console.Clear();
                        }

                        Utilidades.ExibirContatos(contatos);

                        break;

                    case 3:
                        if (contatos.Count > 0)
                        {
                            Console.Write("Digite o ID do contato que deseja excluir: ");
                            int idExcluir = int.Parse(Console.ReadLine());
                            if (idExcluir <= contatos.Count)
                            {
                                contatos = contatoDAO.Excluir(contatos[idExcluir - 1]);
                            }
                            else
                            {
                                Console.WriteLine("Esse ID de contato não existe!");
                            }

                            Utilidades.LimparTela();
                        }
                        else
                        {
                            Console.Clear();
                        }

                        Utilidades.ExibirContatos(contatos);

                        break;

                    case 4:
                        if (contatos.Count > 0)
                        {
                            Console.Write("Digite o ID do contato para consultar: ");
                            int idConsulta = int.Parse(Console.ReadLine());
                            if (idConsulta <= contatos.Count)
                            {
                                Console.WriteLine();
                                Console.WriteLine("Nome: " + contatos[idConsulta - 1].Nome);
                                if (!string.IsNullOrWhiteSpace(contatos[idConsulta - 1].Endereco))
                                {
                                    Console.WriteLine("Endereço: " + contatos[idConsulta - 1].Endereco);
                                }
                                Console.WriteLine("Telefone: " + Utilidades.FormatarTelefone(contatos[idConsulta - 1].Telefone));
                            }
                            else
                            {
                                Console.WriteLine("Esse ID de contato não existe!");
                            }

                            Utilidades.LimparTela();
                        }
                        else
                        {
                            Console.Clear();
                        }

                        Utilidades.ExibirContatos(contatos);

                        break;

                    case 5:
                        continuarExecucao = false;
                        break;

                    default:
                        Console.WriteLine("Ação inválida!");
                        Utilidades.LimparTela();
                        Utilidades.ExibirContatos(contatos);
                        break;
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("Dado inválido: " + e.Message);
                    Utilidades.LimparTela();
                    Utilidades.ExibirContatos(contatos);
                }
            }
        }