O FluentValidation é uma biblioteca que permite a validação de objetos de forma fluente e expressiva. Com o FluentValidation, você pode criar regras de validação separadas da lógica de negócios, mantendo seu código mais limpo e organizado. A biblioteca é extensível e fácil de usar, suportando diversas formas de validação, como checagens de propriedades obrigatórias, tamanhos, valores, entre outras. Neste exemplo, veremos como configurar e usar o FluentValidation para validar uma classe de dados simples.
Bibliotecas:
Para usar a biblioteca FluentValidation, instale o seguinte pacote NuGet no seu projeto:
Install-Package FluentValidation
Código de Exemplo:
using FluentValidation;
using System;
public class Produto
{
public string Nome { get; set; }
public decimal Preco { get; set; }
}
public class ProdutoValidator : AbstractValidator<Produto>
{
public ProdutoValidator()
{
// Definindo regras de validação
RuleFor(p => p.Nome)
.NotEmpty().WithMessage("O nome do produto é obrigatório.")
.Length(3, 50).WithMessage("O nome do produto deve ter entre 3 e 50 caracteres.");
RuleFor(p => p.Preco)
.GreaterThan(0).WithMessage("O preço deve ser maior que zero.");
}
}
class Program
{
static void Main(string[] args)
{
// Criando um produto de exemplo
var produto = new Produto { Nome = "Laptop", Preco = -10 };
// Validando o produto
var validator = new ProdutoValidator();
var resultados = validator.Validate(produto);
if (!resultados.IsValid)
{
foreach (var erro in resultados.Errors)
{
Console.WriteLine($"Erro: {erro.ErrorMessage}");
}
}
else
{
Console.WriteLine("Produto válido!");
}
}
}
Explicação do Código:
Neste exemplo, criamos uma classe Produto com as propriedades Nome e Preco. A classe ProdutoValidator, que herda de AbstractValidator, define as regras de validação para o objeto Produto. Validamos que o Nome não pode ser vazio e deve ter entre 3 e 50 caracteres, e que o Preco deve ser maior que zero. No método Main, criamos um objeto Produto com um valor de preço inválido e, em seguida, utilizamos o ProdutoValidator para validar o objeto. Se houver erros de validação, eles serão exibidos no console.
Conclusão:
O FluentValidation é uma excelente ferramenta para validar objetos de forma fluente e clara. Ele permite separar as regras de validação da lógica de negócios, o que resulta em um código mais organizado e de fácil manutenção. Sua sintaxe simples e extensível facilita a criação de validações poderosas e flexíveis para diversas situações.
Código fonte: GitHub
Top comments (0)