private void ValidarNovoUsuario(Usuario novoUsuario) { var violacaoDeRegras = new RegrasDeNegocioException <Usuario>(); ValidaCamposObrigatorios(novoUsuario, violacaoDeRegras); ValidaOutraRegras(novoUsuario, violacaoDeRegras); }
public static void CopiarPara(this RegrasDeNegocioException ex, ModelStateDictionary modelState, string prefixo) { prefixo = string.IsNullOrEmpty(prefixo) ? "" : prefixo + "."; foreach (var prop in ex.Erros) { string chave = ExpressionHelper.GetExpressionText(prop.Propriedade); modelState.AddModelError(prefixo + chave, prop.Mensagem); } }
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; } }
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; } }
public static void CopiarPara(this RegrasDeNegocioException ex, ModelStateDictionary modelState) { CopiarPara(ex, modelState, null); }