BrazilModels.Swagger
2.0.0
dotnet add package BrazilModels.Swagger --version 2.0.0
NuGet\Install-Package BrazilModels.Swagger -Version 2.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="BrazilModels.Swagger" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add BrazilModels.Swagger --version 2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: BrazilModels.Swagger, 2.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.
// Install BrazilModels.Swagger as a Cake Addin #addin nuget:?package=BrazilModels.Swagger&version=2.0.0 // Install BrazilModels.Swagger as a Cake Tool #tool nuget:?package=BrazilModels.Swagger&version=2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
BrazilModels
This library contains Models, Formatters and Validator for common Brazilian documents
Getting started
NuGet package available:
$ dotnet add package BrazilModels
Validation and Formatting
Cpf
using BrazilModels;
Cpf.Validate("00123456797"); // True
Cpf.Validate("99912345606"); // True
Cpf.Validate("999.123.456-06"); // True
Cpf.Validate("00000000000"); // False
Cpf.Validate("invalid"); // False
Cpf.Format("99912345606", withMask: true); // "999.123.456-06"
Cpf.Format("319.818.120-83", withMask: true); // "319.818.120-83"
Cpf.Format("1234567890", withMask: true); // "012.345.678-90"
Cpf.Format("12345601", withMask: true); // "000.123.456-01"
Cpf.Format("319.818.120-83"); // "31981812083"
Cpf.Format("085.974.710-77"); // "08597471077"
Cpf.Format("08597471077"); // "08597471077"
Cpf.Format("12345601"); // "00012345601"
Cnpj
using BrazilModels;
Cnpj.Validate("49.020.406/0001-25");// True
Cnpj.Validate("49020406000125"); // True
Cnpj.Validate("invalid"); // False
Cnpj.Format("49020406000125", withMask: true); // "49.020.406/0001-25"
Cnpj.Format("49.020.406/0001-25", withMask: true); // "49.020.406/0001-25"
Cnpj.Format("1123456000101", withMask: true); // "01.123.456/0001-01"
Cnpj.Format("49020406000125"); // "49020406000125"
Cnpj.Format("49.020.406/0001-25"); // "49020406000125"
Cnpj.Format("01.123.456/0001-01"); // "1123456000101"
CpfCnpj (can be CPF or CNPJ)
using BrazilModels;
CpfCnpj.Validate("49.020.406/0001-25");// True
CpfCnpj.Validate("49020406000125"); // True
CpfCnpj.Validate("99912345606"); // True
CpfCnpj.Validate("999.123.456-06"); // True
CpfCnpj.Format("49020406000125", withMask: true); // "49.020.406/0001-25"
CpfCnpj.Format("99912345606", withMask: true); // "999.123.456-06"
CpfCnpj.Format("085.974.710-77"); // "08597471077"
CpfCnpj.Format("49.020.406/0001-25"); // "49020406000125"
Models
You can use some value types defined in this lib to strongly type your domain:
Cpf
Cnpj
CpfCnpj
Email
How to use it?
var cpf = new Cpf("319.818.120-83");
var cnpj = new Cnpj("49.020.406/0001-25");
class Person {
public Guid Id {get;init;}
public Cpf Cpf {get;init;}
public Email Email {get;init;}
}
class Company {
public Guid Id {get;init;}
public Cnpj Cnpj {get;init;}
}
Serialization
This already contain converters for:
System.Text.Json
Swashbuckle.AspNetCore.Annotations
System.ComponentModel.TypeConverter
Using with EntityFramework
You can easily define a ValueConverter
for any of the types defined in this library as:
public class YourDbContext : DbContext
{
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
var cliente = modelBuilder.Entity<Person>();
cliente.Property(x => x.Cpf).HasConversion(t => t.Value, t => new(t));
cliente.Property(x => x.Email).HasConversion(t => t.Value, t => new(t));
}
}
Culture Info
You can use BrazilCulture.CultureInfo
as a light-weight alternative pt-BR
culture. It formats as expected dates and
decimal values.
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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net6.0
- BrazilModels (>= 2.0.0)
- Swashbuckle.AspNetCore (>= 6.5.0)
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 |
---|---|---|
2.0.0 | 172 | 4/3/2024 |