ValidationsGeneral 1.0.0
See the version list below for details.
dotnet add package ValidationsGeneral --version 1.0.0
NuGet\Install-Package ValidationsGeneral -Version 1.0.0
<PackageReference Include="ValidationsGeneral" Version="1.0.0" />
<PackageVersion Include="ValidationsGeneral" Version="1.0.0" />
<PackageReference Include="ValidationsGeneral" />
paket add ValidationsGeneral --version 1.0.0
#r "nuget: ValidationsGeneral, 1.0.0"
#:package ValidationsGeneral@1.0.0
#addin nuget:?package=ValidationsGeneral&version=1.0.0
#tool nuget:?package=ValidationsGeneral&version=1.0.0
ValidationsGeneral
Descrição
O ValidationsGeneral é uma biblioteca desenvolvida em .NET 8 que fornece um conjunto de validações genéricas para facilitar o desenvolvimento de aplicações. Ele foi projetado para ser simples, reutilizável e eficiente, ajudando a reduzir a duplicação de código e a melhorar a consistência das validações em diferentes projetos.
Validações Disponíveis
Validações de Identidade
- Validação de CPF: Verifica se um CPF é válido.
- Validação de CNPJ: Verifica se um CNPJ é válido.
Validações Financeiras
- Validação de Cartão de Crédito: Verifica se o número do cartão é válido.
Validações de Contato
- Validação de Telefone: Verifica se o número de telefone é válido.
- Validação de Email: Verifica se um endereço de email é válido.
- Validação de IP: Verifica se o IP é válido.
- Validação de URL: Verifica se a URL está de acordo com as regras.
Validações de Localização
- Validação de CEP: Verifica se o CEP é válido.
- Validação de Código do País: Verifica se o código está válido.
- Validação de TimeZone: Verifica se a Timezone é válida.
Validações de Data
- Validação de Data no formato ISO: Verifica se a data está no formato correto.
- Validação de Data no formato personalizado: Verifica se a data está no formato correto.
- Validação de Intervalo de Datas: Verifica se as datas estão no intervalo correto.
- Validação de Intervalo de Datas com um formato personalizado: Verifica se as datas estão no intervalo correto e com o formato personalizado.
- Validação de Idade: Verifica se a idade está de acordo com a regra cadastrada.
Como Usar
1. Instale o pacote NuGet
O pacote NuGet está disponível no seguinte link: ValidationsGeneral.
2. Chame o pacote
dotnet add package ValidationsGeneral
3. Exemplos de Validação
using ValidationsGeneral;
// Validação de CPF
var cpfValido = DocumentValidator.IsValidCpf("123.456.789-09");
Console.WriteLine($"CPF válido: {cpfValido}");
// Validação de CNPJ
var cnpjValido = DocumentValidator.IsValidCnpj("12.345.678/0001-95");
Console.WriteLine($"CNPJ válido: {cnpjValido}");
// Validação de Cartão de Crédito
var cartaoValido = CreditCardValidator.IsValid("4111 1111 1111 1111");
Console.WriteLine($"Cartão válido: {cartaoValido}");
// Validação de Email
var emailValido = ContactValidator.IsValidEmail("exemplo@email.com");
Console.WriteLine($"Email válido: {emailValido}");
// Validação de CEP
var cepValido = LocationValidator.IsValidCep("01001-000");
Console.WriteLine($"CEP válido: {cepValido}");
// Validação com mensagens de erro internacionalizadas
var resultado = DocumentValidator.ValidateCpf("12345678900", culture: "pt-BR");
if (!resultado.IsValid)
{
Console.WriteLine(resultado.ErrorMessage); // Ex: "CPF inválido"
}
4. Configuração de Injeção de Dependência (DI)
Para integrar a biblioteca ValidationsGeneral com Injeção de Dependência, adicione o seguinte código no seu Startup.cs
ou Program.cs
(dependendo da versão do .NET que você estiver usando):
using Microsoft.Extensions.DependencyInjection;
using ValidationsGeneral.Extensions;
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
// Registra as estratégias de validação
services.AddValidationStrategies();
// Outros serviços...
}
}
Agora, você pode injetar as estratégias de validação onde for necessário. Por exemplo, se você precisar usar uma estratégia de validação de CPF em um serviço:
public class MeuServico
{
private readonly CpfValidatorStrategy _cpfValidator;
public MeuServico(CpfValidatorStrategy cpfValidator)
{
_cpfValidator = cpfValidator;
}
public bool ValidarCpf(string cpf)
{
return _cpfValidator.Validate(cpf);
}
}
5. Usando o ValidatorFactory
A classe ValidatorFactory facilita a criação dinâmica de validadores com base no tipo de documento. Você pode usá-la quando precisar de uma abordagem mais flexível para validar documentos diferentes sem precisar instanciar manualmente os validadores.
Exemplo de uso:
using ValidationsGeneral.Factory;
public class DocumentService
{
public bool ValidarDocumento(DocumentType tipo, string documento)
{
// Cria o validador apropriado para o tipo de documento
var validator = ValidatorFactory.Create(tipo);
// Valida o documento
return validator.Validate(documento);
}
}
6. Método de Extensão IsValid
A classe ValidationExtensions permite que você use a validação de forma mais fluída com a adição de um método de extensão IsValid()
. Agora, você pode validar entradas de forma mais concisa sem precisar acessar diretamente o método Validate
e o campo IsValid
.
Exemplo de uso:
var cpfValidator = new CpfValidatorStrategy();
if (cpfValidator.IsValid("123.456.789-09"))
{
Console.WriteLine("CPF válido!");
}
else
{
Console.WriteLine("CPF inválido!");
}
Requisitos
- .NET 8 ou superior.
🛣 Roadmap
- Validação de CPF
- Validação de CNPJ
- Validação de Cartão de Crédito
- Validações de Contato (Email, Telefone, IP, URL)
- Validações de Localização (CEP, Código do País, TimeZone)
- Validações de Datas e Idade
- Validação de NIF (Portugal)
- Validação de Passaporte
- Validação de SSN (EUA)
- Suporte completo à internacionalização de mensagens de erro
- Integração com SonarQube
- Publicação automatizada via CI/CD
🤝 Contribuindo
Contribuições são muito bem-vindas! Para contribuir:
- Faça um fork do repositório.
- Crie uma branch com a sua feature ou correção:
git checkout -b minha-feature
- Commit suas alterações:
git commit -m "Adiciona nova validação X"
- Envie um pull request!
Sinta-se à vontade para abrir uma issue caso tenha sugestões, dúvidas ou encontre algum bug. 💬
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. 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. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.