//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(); }
//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); } }