A biblioteca FluentValidation pode ser empregada em diferentes tipos de projetos .NET e nos permite realizar diferentes tipos de validação sobre nossas classes de domínio.
Aula 2 - Estrutura do projeto
Para demonstrar os recursos da biblioteca FluentValidation utilizaremos um projeto do tipo Console Application, no entanto o conteúdo abordado aqui é válido para outros projetos, como ASP.NET MVC e Web API.
Aula 3 - Configurando a biblioteca FluentValidation
Para instalar a biblioteca FluentValidation podemos utilizar o gerenciador de pacotes NuGet. Feito isso, para utilizar os recursos de validação será necessário criar classes herdando de AbstractValidator, que se encontra no namespace FluentValidation
Aula 4 - Definindo as regras de validação
Diferente do que ocorre com as Data Annotations, quando usamos a biblioteca FluentValidation as regras de validação não ficam na entidade, mas sim em uma classe que será responsável pela sua validação.
Aula 5 - Validando a entidade
Para validar uma entidade devemos invocar o método Validate do nosso validador. Ele retornará um objeto do tipo ValidationResult contendo o resultado da validação, com um status indicando se ela foi bem sucedida ou não e uma lista de erros.
Aula 6 - Validando várias propriedades
Da mesma forma que validamos uma propriedade usando o método RuleFor, podemos validar todas as propriedades de uma classe. Inclusive é possível aplicar várias regras a uma propriedade usando uma cadeia de métodos invocados em sequência.
Aula 7 - Especificando regras customizadas
A biblioteca FluentValidation já dispõe de vários métodos para realizar diferentes tipos de validação, como “maior que”, “menor que”, “não nulo”, etc. No entanto, às vezes é necessário especificar regras customizadas.
Aula 8 - Criando um validador para o item da venda
Agora que já definimos um validador para a classe Venda, criaremos uma nova classe para validar os itens da venda. Nela definiremos regras que devem ser aplicadas a todos os itens, como preço e quantidade maiores que zero.
Aula 9 - Validando propriedades em cascata
Quando uma classe possui uma coleção de objetos é comum a necessidade de validar todos os itens dessa lista para definir se a classe como um todo é válida. Nesse cenário uma venda só será válida se todos os seus itens também o forem.
Aula 10 - Validações de propriedades dependentes
A validação de várias propriedades se resume a regras fixas, como “maior que”, “menor que” ou “não nulo”. Com a FluentValidation é bastante simples atender esse tipo de cenário usando o método When.