public void RealizaInscricao(Candidato candidato) { var retorno = from a in Candidatos where a.Cpf == candidato.Cpf || a.Email == candidato.Email select a; if (retorno.Count() > 0) { throw new InvalidOperationException("CPF ou e-mail já inscrito"); } else { try { vestContext.Candidatos.Add(candidato); vestContext.SaveChanges(); } catch (DbEntityValidationException ex) { //Estoura as validaçoes que foram feitas no model StringBuilder msgErro = new StringBuilder(); var erros = vestContext.GetValidationErrors(); //já informa quais campos que são do tipo [Required] //e que não foram preenchidos foreach (var erro in erros) { foreach (var detalheErro in erro.ValidationErrors) { msgErro.Append(detalheErro.ErrorMessage); msgErro.Append('\n'); } } vestContext.Entry(candidato).State = System.Data.Entity.EntityState.Detached; throw new InvalidOperationException(msgErro.ToString()); } } }
public void Inserir(Vestibular vestibular) { var retorno = from v in Vestibulares where v.Descricao == vestibular.Descricao select v; if (retorno.Count() > 0) { throw new InvalidOperationException("Vestibular com a mesma descrição"); } else { try { vestContext.Vestibulares.Add(vestibular); vestContext.SaveChanges(); } catch (DbEntityValidationException ex) { StringBuilder msgErro = new StringBuilder(); var erros = vestContext.GetValidationErrors(); //já informa quais campos que são do tipo [Required] //e que não foram preenchidos foreach (var erro in erros) { foreach (var detalheErro in erro.ValidationErrors) { msgErro.Append(detalheErro.ErrorMessage); msgErro.Append('\n'); } } vestContext.Entry(vestibular).State = System.Data.Entity.EntityState.Detached; throw new InvalidOperationException(msgErro.ToString()); } } }