public void ValidarAlterarUsuario(Usuario usuario) { var violacaoDeRegras = new RegrasDeNegocioException<Usuario>(); bool emailJaExiste = ctx.Usuarios.Any(u => u.Email == usuario.Email && u.Id != usuario.Id); if (emailJaExiste) violacaoDeRegras.AdicionarErro(u => u.Email, "E-mail já existe"); ValidaCamposObrigatorios(usuario, violacaoDeRegras); if (violacaoDeRegras.Erros.Any()) { throw violacaoDeRegras; } }
private static void ValidaCamposObrigatorios(Usuario novoUsuario, RegrasDeNegocioException<Usuario> violacaoDeRegras) { if (String.IsNullOrEmpty(novoUsuario.Nome)) { violacaoDeRegras.AdicionarErro(x => x.Nome, "Nome do usuário é obrigatorio"); } if (String.IsNullOrEmpty(novoUsuario.Senha)) { violacaoDeRegras.AdicionarErro(x => x.Nome, "Senha do usuário é obrigatoria"); } if (String.IsNullOrEmpty(novoUsuario.Email)) { violacaoDeRegras.AdicionarErro(x => x.Nome, "Email do usuário é obrigatorio"); } if (violacaoDeRegras.Erros.Any()) { throw violacaoDeRegras; } }
private void ValidarNovoUsuario(Usuario novoUsuario) { var violacaoDeRegras = new RegrasDeNegocioException<Usuario>(); ValidaCamposObrigatorios(novoUsuario, violacaoDeRegras); ValidaOutraRegras(novoUsuario, violacaoDeRegras); }
private void ValidaOutraRegras(Usuario novoUsuario, RegrasDeNegocioException<Usuario> violacaoDeRegras) { if (EmailJaExiste(novoUsuario.Email)) { violacaoDeRegras.AdicionarErro(x => x.Email, "Email já existe no cadastro"); } if (!EmailValido(novoUsuario.Email)) { violacaoDeRegras.AdicionarErro(x => x.Email, "Email inválido"); } if (violacaoDeRegras.Erros.Any()) { throw violacaoDeRegras; } }