Exemplo n.º 1
0
        static void LerCliente(List <Cliente> lista) // FUNÇÃO ESCRITA DE CLIENTE
        {
            // VARIAVEIS
            string      cpf, nome, telefone, logradouro, bairro, cidade, estado, cep;
            long        idCliente;
            bool        err;
            DateTime    dataNascimento = DateTime.Now;
            Endereco    endereco;
            Cliente     cliente;
            CultureInfo CultureBr = new CultureInfo(name: "pt-BR");

            // LOCALIZAÇÃO
            Console.WriteLine("\n>>> CADASTRO CLIENTE<<<\n");

            do
            { // LAÇO TRATAMENTO DE CPF (REPETIDO E VALIDO)
                Console.Write("CPF do Cliente: ");
                cpf = Console.ReadLine();

                if (ClienteController.CpfExistente(lista, cpf))   // VERIFICA SE JÁ EXISTE NA LISTA
                {
                    Console.WriteLine("CPF já cadastrado.\nPrecione qualquer tecla para continuar...");
                    Console.ReadKey();
                    Console.Clear(); // LIMPA TELA
                    return;
                }
            } while (cpf == "");

            do
            { //LAÇO TRATA NOME VAZIO
                Console.Write("Nome do Cliente: ");
                nome = Console.ReadLine();
            } while (nome == "");

            do
            {
                err = false;
                // ARMAZENA DATA DE NASCIMENTO
                try
                {
                    Console.Write("Data de Nascimento do Cliente (dd/mm/yyyy): ");
                    dataNascimento = DateTime.ParseExact(Console.ReadLine(), "d", CultureBr);
                    if ((Convert.ToDateTime(dataNascimento)) > (Convert.ToDateTime(DateTime.Now)))
                    {
                        Console.WriteLine("Data deve ser menor que a data atual");
                        err = true;
                    }
                }
                catch (Exception)
                {
                    Console.WriteLine("Informe a data (dd/mm/yyyy)");
                    err = true;
                }
            } while (err);

            do
            { // LAÇO TRATA TELEFONE VAZIO
                Console.Write("Telefone do Cliente: ");
                telefone = Console.ReadLine();
            } while (telefone == "");

            do
            { // LAÇO TRATA LOGRADOURO VAZIO
                Console.Write("Logradouro do Cliente e Número: ");
                logradouro = Console.ReadLine();
            } while (logradouro == "");

            do
            { // LAÇO TRATA BAIRRO VAZIO
                Console.Write("Bairro do Cliente: ");
                bairro = Console.ReadLine();
            } while (bairro == "");

            do
            { // LAÇO TRATA CIDADE VAZIA
                Console.Write("Cidade do Cliente: ");
                cidade = Console.ReadLine();
            } while (cidade == "");

            do
            { // LAÇO TRATA ESTADO VAZIO
                Console.Write("Estado do Cliente: ");
                estado = Console.ReadLine();
            } while (estado == "");

            do
            { // LAÇO TRATA CEP VAZIO
                Console.Write("CEP do Cliente: ");
                cep = Console.ReadLine();
            } while (cep == "");

            // ESTANCIA ENDEREÇO
            endereco = new Endereco()
            {
                Logradouro = logradouro,
                Bairro     = bairro,
                Cidade     = cidade,
                Estado     = estado,
                Cep        = cep
            };

            if (lista.Count == 0)
            {
                idCliente = 0;
            }
            else
            {
                idCliente = lista[lista.Count - 1].IdCliente + 1;
            }
            // RETORNA CLIENTE ESTANCIADO
            cliente = new Cliente()
            {
                IdCliente      = idCliente,
                Cpf            = cpf,
                Nome           = nome,
                DataNascimento = dataNascimento,
                Telefone       = telefone,
                endereco       = endereco
            };

            // ADICIONA CLIENTE NA LISTA CLIENTE
            lista.Add(cliente);

            // ESCREVE A LISTA NO ARQUIVO
            ArquivoController.Escrita(lista);

            Console.Clear();// LIMPA TELA

            Console.WriteLine("\n>>>CLIENTE CADASTRADO<<<\nPrecione qualquer tecla para continuar...");
            Console.ReadLine();

            Console.Clear();
        }