Pular para o conteúdo principal

Validando Documentos com Fluent Validation, DocsBRValidator e .net Core 6.0

 Introdução

A necessidade de utilização das bases de dados para construção de estratégias de negócios através  de técnicas de Ciência de Dados torna necessário que as aplicações sejam cada vez mais cuidadosas para a validação dos campos que serão salvos nas bases dos sistemas. Esses cuidados tem o objetivo de melhorar a qualiade das informações que serão fornecidas para sistemas de Inteligência artificial, mineração de dados, etc . Neste artigo será apresentada a construção de uma solução console que utiliza o Fluent Validation, DocsBRValidator  e o .net Core 6 para validar o número do CPF fornecido pelo usuário.

 

FluentValidation

FluentValidation é uma bliblioteca .Net criada para construção de regras de validação. Com essa biblioteca  podem ser definidos a obrigatoriedade de campos , os tamanhos, os tipos e a formatação.

 DocsBRValidator

DocsBRValidator é uma biblioteca que possui a regra de validação para os principais documentos brasileiros como CPF, CNPJ,  RG, CNH, Titulo de Eleitor, PIS/PASEP e Inscrição Estadual.

 Implementação do Ambiente

Para Iniciar o projeto será criada uma solução em branco.


O framework escolhido foi o .net core 6.0






Depois que a solução foi criada no Visual Studio 2022. O projeto Console foi adicionado na solução clicando com o botão direito na solução , selecionando a opção (Add => New Project)




O template do projeto Console deverá ser selecionado.

OBS: O projeto Console foi criado dentro da pasta src (Isso não é obrigatório). 




Com o projeto criado as bibliotecas foram incluídas através dos comandos 

Install-Package DocsBRValidator -Version 1.2.1

Install-Package FluentValidation -Version 11.0.1

Estes comandos devem ser digitados no Package Manager Console.


 Codificação


Para codificar foram criadas as classes Pessoa e a Classe PessoaValidation . 

A classe Pessoa representa uma entidade de domínio e armazenará o número do Cpf que deverá ser validado conforme o código abaixo:

  
namespace ValidBrDoc.App
{
    public class Pessoa
    {
        public string Nome { get; set; }
        public string CPF { get; set; }
    }
}

A classe PessoaValidation  representa a classe que irá validar o preenchimento dos campos da classe Pessoa de acordo com as regras definidas através do FluentValidation

using FluentValidation;
using DocumentValidator;

namespace ValidBrDoc.App
{
    public class PessoaValidation : AbstractValidator<Pessoa>
    {
        public PessoaValidation()
        {
            RuleFor(f => CpfValidation.Validate(f.CPF)).Equal(true)
                .WithMessage("O documento fornecido é inválido.");
        }
    }
}

A validação do cpf irá ocorrer conforme a definição da classe CpfValidation definida na biblioteca DocumentValidator. 

No arquivo Program.cs foi definido o seguinte código para testar a validação do CPF:

Pessoa p = new Pessoa();
p.Nome = "Nome Teste";
p.CPF = "XXXXXXX";

var validator = new PessoaValidation();
var answerValidation = validator.Validate(p);
if (!answerValidation.IsValid)
{
    Console.WriteLine(answerValidation.Errors.FirstOrDefault());
} else
{
    Console.WriteLine("Documento válido");
}

O sistema retornará a mensagem  "Documento Válido" caso o número seja correspondente a um cpf ou "O documento fornecido é inválido" conforme o que foi estabelecido na classe PessoaValidation para informar que o cpf é inválido.


Conclusão


A Validação de número de documentos em sistemas é um exercício muitas vezes trabalhoso. Através do exemplo demonstrado é possível ter uma forma menos trabalhosa e tranquila para validação dos principais documentos brasileiros.

Seguem os links para as bibliotecas utilizadas e o github do projeto desenvolvido:


GitHub

Comentários

Postagens mais visitadas deste blog

Criando uma calculadora Android com o Kotlin

Resumo Aprender a programar para Android exige a absorção de conceitos básicos que são mais naturalmente entendidos quando aplicados em algum projeto de desenvolvimento. Objetivando introduzir o contato com o Kotlin para Android, foi criado neste artigo um aplicativo simples de calculadora que possibilita a apresentação do tratamento de eventos de botões, uso de expressões regulares e utilização de um método estático. Introdução O desenvolvimento de aplicativos envolve o entendimento de conceitos que devem ser naturalizados pelos desenvolvedores. Uma das formas mais comuns de se naturalizar os diversos recurso de uma plataforma é desenvolver projetos que demonstrem o funcionamento prático dos conceitos implementados. O aplicativo   Calculadora foi desenvolvido por possibilitar o contato inicial do desenvolvedor com os conceitos de tratamento de eventos, métodos estáticos e expressões regulares. O código desenvolvido buscou implementar estes conceitos de maneira introdutória. Não fo

Logic Programming With Python - 03

Control Flow We often need to run specific code for certain conditions or we must run a code snippet many times. Toward we have this behavors we need of structures of control flow. Basically these structures are divided into conditional and repeating structures.  Conditional structures allow select code snippets for specific conditions while Loop structures allow the execution of code snippets many times. Conditional structures in Python The logical conditionals usein Python are: Equals:  a == b Not Equals:  a != b Less than:  a < b Less than or equal to:  a <= b Greater than:  a > b Greater than or equal to:  a >= b These conditions are fundamental to statement logical and loops Simple if-statement. In this example were declared two variables: a and b. In the if-statement  was defined the condition b > a. As b is equal the five and a is equal to three the message "b greater than a" will show to the user. Code Block In Python, The code block is defined through