ValidaBrasil 1.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package ValidaBrasil --version 1.0.0                
NuGet\Install-Package ValidaBrasil -Version 1.0.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ValidaBrasil" Version="1.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ValidaBrasil --version 1.0.0                
#r "nuget: ValidaBrasil, 1.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install ValidaBrasil as a Cake Addin
#addin nuget:?package=ValidaBrasil&version=1.0.0

// Install ValidaBrasil as a Cake Tool
#tool nuget:?package=ValidaBrasil&version=1.0.0                

ValidaBrasil

ValidaBrasil é um projeto para validação e formatação de documentos e informações brasileiras, como CPF, CNPJ, RENAVAM, Título Eleitoral e outros.

Estrutura do Projeto

A estrutura do projeto foi planejada para ser modular e escalável, permitindo fácil manutenção e extensão.

ValidaBrasil
├── Enums
│   ├── CodigosEstados.cs      # Códigos de estados do Brasil
│   ├── TipoDocumento.cs       # Enumeração para os tipos de documentos
│   └── TipoPlacaVeiculo.cs    # Enumeração para tipos de placa (Antiga e Mercosul)
├── Interfaces
│   └── IOperacao.cs           # Interface para operações de validação e formatação
├── Modelos
│   ├── Cpf.cs                 # Lógica para CPF
│   ├── Cnpj.cs                # Lógica para CNPJ
│   ├── Renavam.cs             # Lógica para RENAVAM
│   ├── PlacaVeiculo.cs        # Lógica para placas de veículos
│   ├── Telefone.cs            # Lógica para telefones
│   └── TituloEleitoral.cs     # Lógica para Título Eleitoral
├── Servicos
│   ├── FormatacaoServico.cs   # Serviço de formatação
│   └── ValidacaoServico.cs    # Serviço de validação
└── ValidaBrasil.cs            # Classe principal que abstrai os serviços

Arquitetura

O projeto segue uma arquitetura baseada em design modular com aplicação de princípios SOLID e padrões de projeto. Ele é composto por três camadas principais:

  • Modelos: Implementações específicas para cada tipo de dado/documento, com validação e formatação.
  • Serviços: Classes para orquestrar a lógica de negócios e delegar operações aos modelos.
  • Fachada (ValidaBrasil): Ponto de entrada simplificado para os consumidores do sistema.

Componentes Principais

  1. Modelos: Contêm a implementação de cada tipo de documento ou dado. Por exemplo:

    • Cpf.cs: Implementação para CPF, com métodos de validação e formatação.
    • Cnpj.cs: Implementação para CNPJ, com métodos de validação e formatação.
    • Renavam.cs: Implementação para RENAVAM, com métodos de validação e formatação.
  2. Serviços: Gerenciam a orquestração entre a validação e formatação dos dados. As classes FormatacaoServico e ValidacaoServico fazem o trabalho de delegar as operações para os modelos apropriados.

  3. Fachada: A classe ValidaBrasil.cs fornece uma interface unificada que simplifica o uso do sistema. Ela expõe métodos estáticos para validação e formatação de diferentes tipos de documentos.


Padrões de Projeto

O projeto segue os seguintes padrões de projeto:

  • Factory Method: O serviço FormatacaoServico utiliza um padrão de fábrica simples para criar instâncias de classes baseadas no tipo de documento, abstraindo a lógica de criação e manutenção de objetos específicos de cada tipo.

  • Interface Segregation: A interface IOperacao define contratos claros para validação, formatação e remoção de formatação. Cada classe que implementa essa interface deve prover sua própria implementação, garantindo flexibilidade e manutenção facilitada.

  • Fachada: A classe estática ValidaBrasil atua como uma fachada, oferecendo uma interface simples para o consumidor, escondendo a complexidade do processo de validação e formatação por trás da interface unificada.


Exemplo de Uso

Abaixo estão exemplos de como utilizar as funcionalidades do projeto:

Validação de um CPF

using ValidaBrasil;
using ValidaBrasil.Enums;

class Program
{
    static void Main()
    {
        string cpf = "123.456.789-09";

        bool isValido = ValidaBrasil.Validacao(TipoDocumento.CPF, cpf);

        Console.WriteLine(isValido ? "CPF válido" : "CPF inválido");
    }
}

Validação de Placa de PlacaVeiculo

using ValidaBrasil;
using ValidaBrasil.Enums;

class Program
{
    static void Main()
    {
        string placa = "ABC1234";

        string placaFormatada = ValidaBrasil.Formatacao(TipoDocumento.PLACAVEICULO, placa);

        Console.WriteLine($"Placa formatada: {placaFormatada}");
    }
}

Remoção de formatação de um CNPJ

using ValidaBrasil;
using ValidaBrasil.Enums;

class Program
{
    static void Main()
    {
        string cnpjFormatado = "12.345.678/0001-99";

        string cnpjSemFormatacao = ValidaBrasil.RemoverFormatacao(TipoDocumento.CNPJ, cnpjFormatado);

        Console.WriteLine($"CNPJ sem formatação: {cnpjSemFormatacao}");
    }
}

Dependências

Este projeto não possui dependências externas, exceto as bibliotecas padrão do .NET.

  • .NET Standard 2.0

Como Contribuir

  1. Faça um fork do projeto.
  2. Crie uma branch para sua feature ou correção (git checkout -b minha-feature).
  3. Comite suas mudanças (git commit -am 'Adicionando minha feature').
  4. Envie para o repositório remoto (git push origin minha-feature).
  5. Crie um pull request.

Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para mais detalhes.


Contato

  • Desenvolvedor: Natanael
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.1 94 12/3/2024
1.0.0 98 12/3/2024