コード例 #1
0
        //Validações de parâmetros de campos em DataAnotation e de Console
        //retorna confirmação upd/insert
        private static void PersisteIncluirAlterar(Aluno aluno)
        {
            Console.Write(MsgConsole.MSG02(aluno.Nome));
            aluno.Nome = Console.ReadLine();
            Console.WriteLine();

            //Tratativa para mensagem da atualização que exive o valor anterior
            Console.Write(MsgConsole.MSG03(aluno.ID == 0 ? "" : aluno.ID.ToString()));

            //Caso não receba valor numérico, atribui 999 que está fora dos limites DataAnnotations
            aluno.Nota = decimal.TryParse(Console.ReadLine(), out decimal nota) ? nota : 999;
            Console.WriteLine();

            //Consiste propriedades Aluno
            var erros = Util.getValidationErros(aluno);

            //Não retornando erros, adicionar cadastro
            if (erros.Count().Equals(0))
            {
                if (ProsseguirOperacao(
                        MsgConsole.MSG10(aluno.ID == 0 ? CRUD.inserir:CRUD.alterar)))
                {
                    if (aluno.ID == 0)
                    {
                        //Em add Busca ultimo id, caso não exista, inicializa
                        var novoId = alunos.Any() ? alunos.Select(s => s.ID).Max() : 1;
                        alunos.Add(new Aluno(novoId)
                        {
                            Nome = aluno.Nome, Nota = aluno.Nota
                        });

                        Console.WriteLine(MsgConsole.MSG07(CRUD.inserir));
                    }
                    else
                    {
                        alunos[alunos.IndexOf(aluno)] = aluno;
                        Console.WriteLine(MsgConsole.MSG07(CRUD.inserir));
                    }
                }
                else
                {
                    Console.WriteLine(MsgConsole.MSG08(aluno.ID == 0 ? CRUD.inserir:CRUD.alterar));
                }
            }
            else
            {
                foreach (var err in erros)
                {
                    Console.WriteLine(err.ErrorMessage);
                }
            }

            Console.WriteLine();
        }
コード例 #2
0
        //Criada unicidade com o id, são exibidos vários cadastros para o mesmo nome
        private static void AlterarAluno()
        {
            try
            {
                if (alunos.Any())
                {
                    do
                    {
                        Console.WriteLine(MsgConsole.MSG05(CRUD.alterar));
                        var nomeAlu = Console.ReadLine();

                        //Pesquisa alunos cadastrado com o nome
                        var pesquisaAlu = alunos.Where(w => w.Nome.ToUpper().Equals(nomeAlu.ToUpper())).ToList();

                        var qtdAlu = pesquisaAlu.Count();

                        if (qtdAlu > 0)
                        {
                            Console.WriteLine(MsgConsole.MSG06(qtdAlu));

                            var aluAux = alunos;
                            //Percorre a lista contendo o nome, inclui alterações
                            foreach (var alu in pesquisaAlu)
                            {
                                Console.WriteLine("Cadastro a ser alterado:");
                                Console.WriteLine(alu);
                                Console.WriteLine();

                                PersisteIncluirAlterar(alu);
                            }
                        }
                        else
                        {
                            Console.WriteLine(MsgConsole.MSG09(nomeAlu));
                        }

                        continuarOp = ProsseguirOperacao(MsgConsole.MSG12(CRUD.alterar));
                    } while (continuarOp);
                }
                else
                {
                    Console.WriteLine(MsgConsole.MSG01);
                }
            }
            catch (Exception)
            {
                throw new ArgumentException(MsgConsole.MSG04(CRUD.alterar));
            }
        }
コード例 #3
0
 private static void InserirAluno()
 {
     try
     {
         do
         {
             //passando id 0 fará busca do último id inserido
             PersisteIncluirAlterar(new Aluno(0));
             continuarOp = ProsseguirOperacao(MsgConsole.MSG12(CRUD.inserir));
         } while (continuarOp);
     }
     catch (Exception)
     {
         throw new ArgumentException(MsgConsole.MSG04(CRUD.inserir));
     }
 }
コード例 #4
0
        //A exclusão dos elementos é realizada pelo Nome
        //Existindo mais de um nome, são percorridos e o usuário decide quais realizará exclusão
        private static void ExcluirAluno()
        {
            if (alunos.Any())
            {
                do
                {
                    Console.WriteLine(MsgConsole.MSG05(CRUD.excluir));

                    var nomeAlu = Console.ReadLine();

                    //Pesquisa pelo nome alunos cadastrados
                    var pesquisaAlu = alunos.Where(w => w.Nome.Equals(nomeAlu.ToUpper().ToUpper())).ToList();

                    var qtdAlu = pesquisaAlu.Count();

                    if (qtdAlu > 0)
                    {
                        Console.WriteLine(MsgConsole.MSG06(qtdAlu));
                        foreach (var alu in alunos)
                        {
                            Console.WriteLine(alu);
                            if (ProsseguirOperacao(MsgConsole.MSG10(CRUD.excluir)))
                            {
                                alunos.RemoveAll(r => r.ID == alu.ID);
                                Console.WriteLine(MsgConsole.MSG07(CRUD.excluir));
                            }
                            else
                            {
                                Console.WriteLine(MsgConsole.MSG08(CRUD.excluir));
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine(MsgConsole.MSG09(nomeAlu));
                    }

                    continuarOp = ProsseguirOperacao(MsgConsole.MSG12(CRUD.inserir));
                } while (continuarOp);
            }
            else
            {
                Console.WriteLine(MsgConsole.MSG01);
            }
        }
コード例 #5
0
        private static void CalcularMediaGeral()
        {
            if (alunos.Any())
            {
                var mediaGeral = alunos.Average(x => x.Nota);

                // var conceito = GetConceitoNota(mediaGeral);

                /*  teste uso Lista de enum*/
                var lstConceito = Enum.GetValues(typeof(ConceitoNota)).OfType <ConceitoNota>();

                var conceito = lstConceito.Where(w => w.GetHashCode() > (int)mediaGeral)
                               .Select(s => s.ToString()).FirstOrDefault();

                Console.WriteLine(MsgConsole.MSG11(mediaGeral, conceito));
                Console.WriteLine();
            }
            else
            {
                Console.WriteLine(MsgConsole.MSG01);
            }
        }