コード例 #1
0
        public CadastrarAluno()
        {
            alunoService = new AlunoService(new RepositorioBase <Aluno>(new Contexto()));

            Console.Clear();
            Console.WriteLine("Universidade Ecológica do Sitio do Caqui" +
                              "\n---------------------------------------------------------\n" +
                              "Cadastro de Aluno" +
                              "\n---------------------------------------------------------");


            var aluno = new Aluno();

            var nomeInvalido = true;

            while (nomeInvalido)
            {
                Console.Write("Nome: ");

                var nome = Console.ReadLine();

                if (string.IsNullOrWhiteSpace(nome))
                {
                    Console.Clear();
                    Console.WriteLine("Preencha o nome.\n Aperte qualquer tecla para continuar.\n");
                    Console.ReadLine();
                }

                if (!Regex.IsMatch(nome, @"[\p{L}]+$"))
                {
                    Console.Clear();
                    Console.WriteLine("O nome deve conter apenas letras.\n Aperte qualquer tecla para continuar.\n");
                    Console.ReadLine();
                }
                else
                {
                    nomeInvalido = false;
                    aluno.Nome   = nome;
                }
                Console.Clear();
            }


            var sobrenomeInvalido = true;

            while (sobrenomeInvalido)
            {
                Console.Clear();
                Console.Write("Sobrenome: ");

                var sobrenome = Console.ReadLine();

                if (string.IsNullOrWhiteSpace(sobrenome))
                {
                    Console.Clear();
                    Console.WriteLine("Preencha o sobrenome.\n Aperte qualquer tecla para continuar.\n");
                    Console.ReadLine();
                }
                else
                {
                    sobrenomeInvalido = false;
                    aluno.Sobrenome   = sobrenome;
                }
            }

            Console.Clear();
            Console.WriteLine("Espere um pouco...");

            var alunoExistente = alunoService.BuscarPorNomeSobrenome(aluno.Nome, aluno.Sobrenome);

            Console.Clear();

            if (alunoExistente != null)
            {
                Console.Clear();
                Console.WriteLine("Universidade Ecológica do Sitio do Caqui" +
                                  "\n---------------------------------------------------------\n" +
                                  "Cadastro de Aluno" +
                                  "\n---------------------------------------------------------\n" +
                                  "Nome: " + alunoExistente.Nome + "\n" +
                                  "Sobrenome: " + alunoExistente.Sobrenome + "\n" +
                                  "Data de Nascimento: " + alunoExistente.DataDeNascimento.ToShortDateString() + "\n" +
                                  "CPF: " + alunoExistente.Cpf + "\n" +
                                  "Curso: " + alunoExistente.Curso + "\n" +
                                  "\n---------------------------------------------------------\n" +
                                  "01 - Voltar | 02 - Salvar | 03 - Excluir" +
                                  "\n---------------------------------------------------------");

                do
                {
                    var opcao = Console.ReadLine();

                    if (int.TryParse(opcao, out var opcaoValida))
                    {
                        switch (opcaoValida)
                        {
                        case 1:
                            new MenuPrincipal();
                            break;

                        case 2:
                            new MenuPrincipal();
                            break;

                        case 3:
                            alunoService.Excluir(alunoExistente);
                            Console.Clear();
                            Console.WriteLine("Aluno excluido com sucesso.\n Aperte qualquer tecla para continuar.\n");
                            Console.ReadLine();
                            break;

                        default:
                            OpcaoInvalida();
                            break;
                        }
                    }
                    else
                    {
                        OpcaoInvalida();
                    }
                }while (true);
            }
            else
            {
                var dataInvalida = true;

                while (dataInvalida)
                {
                    Console.Clear();
                    Console.Write("Data de Nascimento: ");

                    var data = Console.ReadLine();

                    if (string.IsNullOrWhiteSpace(data))
                    {
                        Console.Clear();
                        Console.WriteLine("Preencha a data.\n Aperte qualquer tecla para continuar.\n");
                        Console.ReadLine();
                        continue;
                    }

                    if (DateTime.TryParse(data, out var dataConvertida))
                    {
                        if (dataConvertida < DateTime.MinValue || dataConvertida > DateTime.MaxValue)
                        {
                            Console.Clear();
                            Console.WriteLine("A data esta fora do alcance permitido. Digite uma data válida.\n Aperte qualquer tecla para continuar.\n");
                            Console.ReadLine();
                        }

                        if (dataConvertida > DataMinima)
                        {
                            Console.Clear();
                            Console.WriteLine("A data não pode ser maior que 01/01/2002.\n Aperte qualquer tecla para continuar.\n");
                            Console.ReadLine();
                        }
                        else
                        {
                            aluno.DataDeNascimento = dataConvertida;
                            dataInvalida           = false;
                        }
                    }
                    else
                    {
                        Console.Clear();
                        Console.WriteLine("Formado de data inválido. Digite no formato dia/mês/ano.\nAperte qualquer tecla para continuar.\n");
                        Console.ReadLine();
                    }
                }

                var cpfInvalido = true;

                while (cpfInvalido)
                {
                    Console.Clear();
                    Console.Write("CPF: ");
                    var cpf = Console.ReadLine();

                    if (string.IsNullOrWhiteSpace(cpf))
                    {
                        Console.Clear();
                        Console.WriteLine("Preencha o CPF.\n Aperte qualquer tecla para continuar.\n");
                        Console.ReadLine();
                        continue;
                    }

                    if (alunoService.BuscarPorCpf(cpf) != null)
                    {
                        Console.Clear();
                        Console.WriteLine("Um aluno já foi cadastrado com esse CPF.\n Aperte qualquer tecla para continuar.\n");
                        Console.ReadLine();
                        continue;
                    }

                    if (int.TryParse(cpf, out var cpfConvertido))
                    {
                        aluno.Cpf   = cpf;
                        cpfInvalido = false;
                    }
                    else
                    {
                        Console.Clear();
                        Console.WriteLine("O CPF deve conter apenas números.\nAperte qualquer tecla para continuar.\n");
                        Console.ReadLine();
                    }
                }

                var cursoInvalido = true;

                while (cursoInvalido)
                {
                    Console.Clear();
                    Console.Write("Curso: ");
                    var curso = Console.ReadLine();

                    if (string.IsNullOrWhiteSpace(curso))
                    {
                        Console.Clear();
                        Console.WriteLine("Preencha o curso.\n Aperte qualquer tecla para continuar.\n");
                        Console.ReadLine();
                    }
                    else
                    {
                        aluno.Curso   = curso;
                        cursoInvalido = false;
                    }
                }

                var opcao = "";

                do
                {
                    Console.Clear();
                    Console.WriteLine("Universidade Ecológica do Sitio do Caqui" +
                                      "\n---------------------------------------------------------\n" +
                                      "Cadastro de Aluno" +
                                      "\n---------------------------------------------------------\n" +
                                      "Nome: " + aluno.Nome + "\n" +
                                      "Sobrenome: " + aluno.Sobrenome + "\n" +
                                      "Data de Nascimento: " + aluno.DataDeNascimento.ToShortDateString() + "\n" +
                                      "CPF: " + aluno.Cpf + "\n" +
                                      "Curso: " + aluno.Curso + "\n" +
                                      "\n---------------------------------------------------------\n" +
                                      "01 - Voltar | 02 - Salvar | 03 - Excluir" +
                                      "\n---------------------------------------------------------");

                    opcao = Console.ReadLine();

                    if (int.TryParse(opcao, out var opcaoValida))
                    {
                        switch (opcaoValida)
                        {
                        case 1:
                            new MenuPrincipal();
                            break;

                        case 2:
                            alunoService.Cadastrar(aluno);
                            Console.Clear();
                            Console.WriteLine("Aluno salvo com sucesso!\nAperte qualquer tecla para continuar.");
                            Console.ReadLine();
                            opcao = "";
                            new MenuPrincipal();
                            break;

                        case 3:
                            new MenuPrincipal();
                            break;

                        default:
                            OpcaoInvalida();
                            break;
                        }
                    }
                    else
                    {
                        OpcaoInvalida();
                    }
                }while (string.IsNullOrWhiteSpace(opcao));
            }
        }