BrazilianTypes 6.1.1.1
See the version list below for details.
dotnet add package BrazilianTypes --version 6.1.1.1
NuGet\Install-Package BrazilianTypes -Version 6.1.1.1
<PackageReference Include="BrazilianTypes" Version="6.1.1.1" />
paket add BrazilianTypes --version 6.1.1.1
#r "nuget: BrazilianTypes, 6.1.1.1"
// Install BrazilianTypes as a Cake Addin #addin nuget:?package=BrazilianTypes&version=6.1.1.1 // Install BrazilianTypes as a Cake Tool #tool nuget:?package=BrazilianTypes&version=6.1.1.1
BrazilianTypes 6.1 | .NET 6
A biblioteca BrazilianTypes fornece tipos e funcionalidades para trabalhar com dados específicos do Brasil, como CPFs.
Índice
Como Usar
Para começar a usar a biblioteca BrazilianTypes, siga os passos abaixo:
- Adicione uma referência ao projeto onde deseja usar a biblioteca.
- Importe o namespace
BrazilianTypes.Types
ouBrazilianTypes.Interfaces
. - Utilize os tipos e métodos conforme necessário.
Observações
- Os tipos são
structs
, portanto, são tipos por valor. - Todos os tipos possuem
implicit operators
para conversão destring
para o tipo. - Os construtores dos tipos são privados, portanto, não é possível instanciá-los.
- Ao passar uma
string
inválida para o tipo, umaexception
será lançada. - Para validar se uma
string
pode ser usada por um tipo, utilize o métodoTryParse
.
Exemplo:
public class User
{
string Name { get; set;}
Cpf Cpf { get; set; }
Password Password { get; set; }
ZipCode Cep { get; set; }
Phone Phone { get; set; }
Uf Uf { get; set; }
Cnpj CompanyCnpj { get; set; }
public User(
string name,
string cpf,
string cep,
string phone,
string uf,
string companyCnpj,
string password
)
{
Name = name;
Cpf = cpf;
Cep = cep;
Phone = phone;
Uf = uf;
CompanyCnpj = companyCnpj;
Password = password;
}
}
Interfaces
IMaskedType
A interface IMaskedType
define um tipo com aplicação de máscara.
public interface IMaskedType
{
string Mask { get; }
}
ISpecification<TCode, TType>
A interface ISpecification
define uma especifacação para validação de dados.
public interface ISpecification<TCode, in TType>
where TCode : struct
where TType : struct
{
TCode Code { get; protected set; }
ICollection<string> ErrorMessages { get; init; }
bool IsSatisfiedBy(TType data);
}
Code
: Código de erro personalizado da sua aplicação.ErrorMessages
: Mensagens de erro personalizadas da sua aplicação.IsSatisfiedBy
: Método que valida os dados.TCode
: Tipo do código de erro. Deve ser um tipo de valor.TType
: Tipo do dado a ser validado. Deve ser um tipo de valor.
Tipos
Cpf : IMaskedType
O tipo Cpf
representa um número de CPF (Cadastro de Pessoas Físicas) válido.
Exemplo:
using BrazilianTypes.Types;
// conversão implicita de string para CPF (sem máscara)
Cpf cpf = "12345678901";
Cpf cpf = "123.456.789-01"; // 12345678901
// conversão implicita de CPF para string
string str = cpf; // 12345678901
Propriedades
Mask
: Obtém o CPF formatado com a máscara (###.###.###-##).
string mask = cpf.Mask; // 123.456.789-01
Digits
: Obtém os dígitos do CPF.
string digits = cpf.Digits; // 01
Métodos
TryParse
: Tenta converter uma string em um objeto Cpf.
bool isValid = Cpf.TryParse(string value, out Cpf cpf)
Generate
: Gera um número de CPF válido.
Cpf cpf = Cpf.Generate()
Cnpj : IMaskedType
O tipo Cnpj
representa um número de CNPJ (Cadastro Nacional de Pessoa Jurídica)
Exemplo:
using BrazilianTypes.Types;
// conversão implicita de string para CPF (sem máscara)
Cnpj cnpj = "12345678000101;
Cnpj cnpj = "12.345.678/0001-01"; // 12345678000101;
// conversão implicita de CNPJ para string
string str = cnpj; // 12345678000101;
Propriedades
Mask
: Obtém o CNPJ formatado com a máscara (##.###.###/####-##).
string mask = cnpj.Mask; // "12.345.678/0001-01"
Digits
: Obtém os dígitos do CNPJ.
string digits = cnpj.Digits; // 01
Métodos
TryParse
: Tenta converter uma string em um objeto Cnpj.
bool isValid = Cnpj.TryParse(string value, out Cnpj cnpj)
Generate
: Gera um número de CNPJ válido.
Cnpj cnpj = Cnpj.Generate()
ZipCode : IMaskedType
O tipo ZipCode
representa um número de CEP (Código de Endereçamento Postal)
Brasileiro.
Exemplo:
using BrazilianTypes.Types;
// conversão implicita de string para CEP (sem máscara)
ZipCode cep = "12345678"; // 12345678
ZipCode cep = "12345-678"; // 12345678
// conversão implicita de CEP para string
string str = cep;
Propriedades
Mask
: Obtém o CEP formatado com a máscara (#####-###).
string cepMasked = cep.Mask; // 12345-678
Métodos
TryParse
: Tenta converter uma string em um objeto ZipCode.
bool isValid = ZipCode.TryParse(string value, out ZipCode zipCode)
Generate
: Gera um CEP válido.
ZipCode cep = ZipCode.Generate()
UF
O tipo Uf
representa uma Unidade Federativa do Brasil.
Exemplo:
using BrazilianTypes.Types;
// conversão implicita de string para UF
Uf uf = "rs"; // RS
Uf uf = "RS";
// conversão implicita de UF para string
string str = uf;
Métodos
TryParse
: Tenta converter uma string em um objeto Uf.
bool isValid = Uf.TryParse(string value, out Uf uf)
Phone : IMaskedType
O tipo Phone
representa um número de telefone brasileiro.
Exemplo:
using BrazilianTypes.Types;
// conversão implicita de string para Phone
Phone phone = "(51) 99999-8888"; // 51999998888
Phone phone = "51999998888"; // 51999998888
Phone phone = "(51) 3333-4444"; // 5133334444
Phone phone = "5133334444"; // 5133334444
// conversão implicita de Phone para string
string str = phone;
Propriedades
Mask
: Obtém o Telefone formatado com a máscara ((##) #####-###).
string mobile = phone.Mask; // (51) 99999-8888
string landline = phone.Mask; // (51) 3333-4444
IsMobile
: Obtém um valor que indica se o telefone é móvel.
bool isMobile = phone.IsMobile; // true
Ddd
: Obtém o DDD do telefone.
string ddd = phone.Ddd; // 51
Métodos
TryParse
: Tenta converter uma string em um objeto Phone.
bool isValid = Phone.TryParse(string value, out Phone phone)
FromSplit
: Cria um objeto Phone a partir de um DDD e um número de telefone.
Phone phone = Phone.FromSplit(string ddd, string number)
Text
O tipo Text
representa um texto que não pode ser nulo ou vazio.
Exemplo:
using BrazilianTypes.Types;
Text text = "Hello World"; // "Hello World"
Text text = " Hello World "; // "Hello World"
Text text = " "; // throw exception
Text text = ""; // throw exception
Text text = null; // throw exception
Métodos
TryParse
: Tenta converter uma string em um objetoText
.
bool isValid = Text.TryParse(string value, out Text text)
Name
O tipo Name
representa um nome que contém apenas letras e não pode ser nulo
ou vazio.
Exemplo:
using BrazilianTypes.Types;
Name name = "John Doe"; // "John Doe"
Name name = " John Doe "; // "John Doe"
Name name = "João"; // João
Name name = "Júlia"; // Júlia
Name name = " "; // throw exception
Name name = ""; // throw exception
Name name = null; // throw exception
Métodos
TryParse
: Tenta converter uma string em um objetoName
.
bool isValid = Name.TryParse(string value, out Name name)
Email
O tipo Email
representa um endereço de e-mail.
Exemplo:
using BrazilianTypes.Types;
Email email = "foobar@gmail.com"; // "foobar@gmail.com"
Email email = "FOOBAR@GMAIL.COM"; // "foobar@gmail.com"
Email email = " FOOBAR@GMAIL.COM "; // "foobar@gmail.com"
Email email = "foobar@gmail"; // "throw exception"
Email email = ".foobar@gmail.com"; // "throw exception"
Email email = "foobar.gmail"; // "throw exception"
Email email = "foobar@gmail."; // "throw exception"
Email email = "foobar@gmail..com"; // "throw exception"
Email email = "foobar.gmail.com"; // "throw exception"
Email email = "foobar@.gmail.com"; // "throw exception"
Email email = "@gmail.com"; // "throw exception"
Email email = "@"; // "throw exception"
Email email = "foobar"; // "throw exception"
Email email = "foobar@"; // "throw exception"
Email email = " "; // throw exception
Email email = ""; // throw exception
Email email = null; // throw exception
Métodos
TryParse
: Tenta converter uma string em um objetoEmail
.
bool isValid = Email.TryParse(string value, out Email email)
Contribuindo
Se encontrar algum problema ou tiver sugestões de melhorias, sinta-se à vontade para abrir uma issue ou enviar um pull request.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. 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. |
-
net6.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.
v6.1.1.1
- Fix: Cpf and Cnpj do not generate all equals anymore.
- Doc: Corrected some typos.
- Feature: Implemented an exception to improve debugging when type throws.
All types are 100% test covered.