Validação é algo de suma importância, e que muitas vezes é colocada em segundo ou até terceito plano no desenvolvimento de aplicações. O NHibernate Validator é um poderoso framework de validação, que torna simples e objetiva a tarefa de validar os dados fornecidos pelos usuários para a sua aplicação. Ele possui vários recursos, como configuração dos validadores através de XML e de atributos, integração com NHibernate, entre outros. Vamos mostrar um exemplo simples, onde a configuração dos validadores será feita através de atributos decorando as propriedades da classe Usuario abaixo:
1: using NHibernate.Validator;
2:
3: public class Usuario
4: {
5: private int id;
6: private string nome;
7: private string email;
8: private DateTime dataNascimento;
9:
10: [Min(1, Message = "Id deve ser positivo")]
11: public int Id
12: {
13: get { return id; }
14: set { id = value; }
15: }
16:
17: [NotNullNotEmpty(Message = "Nome é obrigatório."),
18: Length(Max= 80, Message = "Nome deve ter no máximo 80 caracteres.")]
19: public string Nome
20: {
21: get { return nome; }
22: set { nome = value; }
23: }
24:
25: [Email(Message = "E-mail inválido."),
26: NotNullNotEmpty(Message = "E-mail é obrigatório.")]
27: public string Email
28: {
29: get { return email; }
30: set { email = value; }
31: }
32:
33: [Past(Message = "Data de nascimento deve estar no passado."),
34: NotNull(Message = "Data de nascimento é obrigatório.")]
35: public DateTime DataNascimento
36: {
37: get { return dataNascimento; }
38: set { dataNascimento = value; }
39: }
40: }
Lembrando que é necessário referenciar a dll NHibernate.Validator.dll no projeto. Existem muitos outros atributos, como Digits (para valores numéricos), CreditCardNumber (número de cartões de crédito), IPAddress (endereços IP), além da possibilidade de criar atributos de validação customizados. Com a configuração dos validadores feita, é hora de testar se os dados recebidos pelo objeto serão válidos:
1: using NHibernate.Validator.Engine;
2:
3: static void Main(string[] args)
4: {
5: Usuario user = new Usuario();
6: user.Id = 10;
7: user.Nome = "Rogério Bragil";
8: user.Email = "rogerio";
9: user.DataNascimento = new DateTime(1978, 1, 27);
10: ValidatorEngine validator = new ValidatorEngine();
11: InvalidValue[] erros = validator.Validate(user);
12: foreach (InvalidValue erro in erros)
13: {
14: Console.WriteLine(erro.Message);
15: }
16: Console.ReadKey();
17: }
A execução deste exemplo exibe a seguinte mensagem:
E-mail inválido
devido ao fato da propriedade Email ter recebido a string "rogerio" (que não é um e-mail válido).
Esse exemplo foi uma pequena amostra dos recursos do NHibernate Validator. Há muito mais o que ser explorado, vale muito a pena dar uma lida na documentação e explorar mais recursos dessa poderosa ferramenta de validação.
06f7de5d-b563-48b4-a768-d655501f2fa6|1|5.0