Tooark.Enums 4.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Tooark.Enums --version 4.1.0
                    
NuGet\Install-Package Tooark.Enums -Version 4.1.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="Tooark.Enums" Version="4.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Tooark.Enums" Version="4.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Tooark.Enums" />
                    
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 Tooark.Enums --version 4.1.0
                    
#r "nuget: Tooark.Enums, 4.1.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 Tooark.Enums@4.1.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=Tooark.Enums&version=4.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Tooark.Enums&version=4.1.0
                    
Install as a Cake Tool

Tooark.Enums

Biblioteca que fornece tipos enumerados validados, permitindo a padronização para projetos .NET. Inclui métodos para conversão e validação de valores enumerados.

Conteúdo

Instalação

dotnet add package Tooark.Enums

O pacote não tem configuração: os enumeradores são valores estáticos, usados diretamente.

Como funcionam

Os três tipos são classes com instâncias estáticas, e não enum do C#. Isso permite que cada valor carregue mais do que um número — descrição, padrão de formato, função de validação — ao custo de não poderem ser usados como argumento de atributo, que exige constante.

Todos expõem o mesmo conjunto de operações:

Operação Comportamento
ToString() Devolve a descrição
ToInt() Devolve o id
(int) implícito Mesmo que ToInt()
(string) implícito Mesmo que ToString()
int → enum implícito Resolve pelo id
string → enum implícito Resolve pela descrição, sem diferenciar caixa nem espaços nas pontas

Duas regras valem para os três:

  • A descrição é normalizada. "aws", "AWS" e " Aws " resolvem para o mesmo valor.
  • Id ou descrição não reconhecidos resolvem para o valor neutro — None em ECloudProvider e EDocumentType, Unknown em EFileType —, que é o membro previsto para isso. Já converter uma instância nula para int ou string lança InternalServerErrorException com Invalid.Parameter;null: não existe id nem descrição correta para devolver, e devolver zero seria inventar um dado.

Enumeradores

1. Provedor de Cloud

Funcionalidade: representa os provedores de cloud suportados.

Valor Id Descrição Também aceita
None 0 None —
Amazon 1 AWS Amazon
Google 2 GCP Google
Microsoft 3 Azure Microsoft

Exemplo de Uso

2. Tipo de Documento

Funcionalidade: representa os tipos de documento, cada um com o próprio formato e verificação.

Valor Id Verificação
None 0 Aceita qualquer documento
CPF 1 Formato e dígitos verificadores
RG 2 Formato e dígito verificador, quando informado
CNH 3 Formato e dígitos verificadores
CNPJ 4 Formato e dígitos verificadores, aceita CNPJ alfanumérico
CPF_CNPJ 5 CPF ou CNPJ, ambos com dígitos
CPF_RG 6 CPF ou RG
CPF_RG_CNH 7 CPF, RG ou CNH

Métodos próprios:

  • ToRegex(): devolve o padrão de formato do tipo de documento.
  • IsValid: função que verifica os dígitos verificadores, aceitando o valor com ou sem máscara.

As duas verificações são camadas distintas e se complementam: ToRegex() cuida da forma e IsValid cuida do conteúdo. Uma validação completa aplica as duas, como fazem o value object Document do Tooark.ValueObjects e o DocumentValidationAttribute do Tooark.Attributes. Chamada isolada, IsValid aceita 529.982.247-25 e 52998224725 igualmente, e nunca lança para entrada inválida — devolve false.

O cálculo dos dígitos vem de DocumentDigit, no Tooark.Validations, o mesmo usado pelas validações daquele pacote — então new Validation().IsCpf(...) e EDocumentType.CPF.IsValid(...) sempre concordam.

Exemplo de Uso

3. Tipo de Arquivo

Funcionalidade: representa as categorias de arquivo.

Valor Id Descrição
Unknown 0 Unknown
Document 1 Document
Image 2 Image
Video 3 Video
Audio 4 Audio

Exemplo de Uso

Exemplos de Uso

Provedor de Cloud

using Tooark.Enums;

ECloudProvider provider = ECloudProvider.Amazon;

Console.WriteLine(provider.ToString()); // AWS
Console.WriteLine(provider.ToInt());    // 1

// Conversões implícitas, úteis para persistir e ler de volta
int id = provider;                      // 1
string description = provider;          // "AWS"

// A descrição não diferencia caixa
ECloudProvider daConfiguracao = "aws";  // Amazon
ECloudProvider doBanco = 1;             // Amazon

Tipo de Documento

using Tooark.Enums;

EDocumentType docType = EDocumentType.CPF;

Console.WriteLine(docType.ToString()); // CPF
Console.WriteLine(docType.ToInt());    // 1
Console.WriteLine(docType.ToRegex());  // ^\d{3}\.\d{3}\.\d{3}-\d{2}$

// IsValid confere os dígitos, com ou sem máscara
Console.WriteLine(docType.IsValid("529.982.247-25")); // True
Console.WriteLine(docType.IsValid("52998224725"));    // True
Console.WriteLine(docType.IsValid("529.982.247-24")); // False

Validação completa, aplicando formato e dígitos:

using System.Text.RegularExpressions;
using Tooark.Enums;

bool EhValido(string documento, EDocumentType tipo) =>
  Regex.IsMatch(documento, tipo.ToRegex()) && tipo.IsValid(documento);

Tipo de Arquivo

using Tooark.Enums;

EFileType fileType = EFileType.Image;

Console.WriteLine(fileType.ToString()); // Image
Console.WriteLine(fileType.ToInt());    // 2

// Valor não reconhecido resolve para Unknown
EFileType desconhecido = "planilha";    // Unknown

Dependências

Dependência Versão Uso
Tooark.Validations 4.x DocumentDigit e os padrões de formato
Tooark.Exceptions 4.x Erro de conversão de instância nula

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests no repositório Tooark.Enums.

Licença

Este projeto está licenciado sob a licença BSD 3-Clause. Veja o arquivo LICENSE para mais detalhes.

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 is compatible.  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 (4)

Showing the top 4 NuGet packages that depend on Tooark.Enums:

Package Downloads
Tooark.ValueObjects

Package for managing predefined and validated Value Objects for .NET applications.

Tooark.Entities

Package for managing base entities in .NET applications.

Tooark.Attributes

Package for creating attribute validators for .NET applications.

Tooark

Package with all Tooark resources for .NET applications.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
4.7.1 81 10/17/2026
4.7.0 365 9/30/2026
4.6.0 185 9/29/2026
4.5.0 151 9/29/2026
4.4.0 149 9/28/2026
4.3.0 162 9/26/2026
4.2.1 160 9/25/2026
4.2.0 170 9/20/2026
4.1.0 167 9/18/2026
4.0.1 232 8/25/2026
4.0.0 181 8/25/2026
3.3.6 154 9/18/2026
3.3.5 169 8/25/2026
3.3.4 350 8/12/2026
3.3.3 426 7/27/2026
3.3.2 374 6/11/2026
3.3.1 214 6/6/2026
2.3.5 147 9/18/2026
2.3.4 180 8/25/2026
2.3.3 187 7/27/2026
Loading failed