ValidationsGeneral 1.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package ValidationsGeneral --version 1.0.0
                    
NuGet\Install-Package ValidationsGeneral -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="ValidationsGeneral" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ValidationsGeneral" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="ValidationsGeneral" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ValidationsGeneral --version 1.0.0
                    
#r "nuget: ValidationsGeneral, 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.
#:package ValidationsGeneral@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ValidationsGeneral&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=ValidationsGeneral&version=1.0.0
                    
Install as a Cake Tool

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

  1. Validações de Identidade

    • Validação de CPF: Verifica se um CPF é válido.
    • Validação de CNPJ: Verifica se um CNPJ é válido.
  2. Validações Financeiras

    • Validação de Cartão de Crédito: Verifica se o número do cartão é válido.
  3. 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.
  4. 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.
  5. 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:

  1. Faça um fork do repositório.
  2. Crie uma branch com a sua feature ou correção:
    git checkout -b minha-feature
    
  3. Commit suas alterações:
    git commit -m "Adiciona nova validação X"
    
  4. Envie um pull request!

Sinta-se à vontade para abrir uma issue caso tenha sugestões, dúvidas ou encontre algum bug. 💬

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.4 171 4/23/2025
1.0.0 160 4/23/2025