ValidaBrasil 1.0.0
See the version list below for details.
dotnet add package ValidaBrasil --version 1.0.0
NuGet\Install-Package ValidaBrasil -Version 1.0.0
<PackageReference Include="ValidaBrasil" Version="1.0.0" />
paket add ValidaBrasil --version 1.0.0
#r "nuget: ValidaBrasil, 1.0.0"
// 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
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.
Serviços: Gerenciam a orquestração entre a validação e formatação dos dados. As classes
FormatacaoServico
eValidacaoServico
fazem o trabalho de delegar as operações para os modelos apropriados.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
- Faça um fork do projeto.
- Crie uma branch para sua feature ou correção (
git checkout -b minha-feature
). - Comite suas mudanças (
git commit -am 'Adicionando minha feature'
). - Envie para o repositório remoto (
git push origin minha-feature
). - 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 | Versions 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. |
-
.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.