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.


Páginas

Calendário

«  March 2010  »
MoTuWeThFrSaSu
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234
View posts in large calendar