top of page

Validação Simples e Fluente com FluentValidation

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.


0 visualização

Posts recentes

Ver tudo

Dica C#: Default Interface Methods

Vamos falar sobre uma novidade do C# 12: Default Interface Methods. Esse recurso permite que interfaces contenham implementações de...

Dica C#: Global Using Directives

Vamos para uma dica do C# 10: Global Using Directives. Com essa funcionalidade, você pode definir diretivas using globais que se aplicam...

bottom of page