BrazilModels 2.0.0
dotnet add package BrazilModels --version 2.0.0
NuGet\Install-Package BrazilModels -Version 2.0.0
<PackageReference Include="BrazilModels" Version="2.0.0" />
paket add BrazilModels --version 2.0.0
#r "nuget: BrazilModels, 2.0.0"
// Install BrazilModels as a Cake Addin #addin nuget:?package=BrazilModels&version=2.0.0 // Install BrazilModels as a Cake Tool #tool nuget:?package=BrazilModels&version=2.0.0
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 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. |
-
net6.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on BrazilModels:
Package | Downloads |
---|---|
BrazilModels.Swagger
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.0.0 | 282 | 4/3/2024 |
1.1.13 | 563 | 1/26/2024 |
1.1.12 | 1,577 | 5/24/2023 |
1.1.11 | 598 | 5/24/2023 |
1.1.10 | 1,691 | 2/10/2023 |
1.1.9 | 930 | 1/24/2023 |
1.1.8 | 2,677 | 1/16/2023 |
1.1.7 | 831 | 12/28/2022 |
1.1.6 | 734 | 12/28/2022 |
1.1.5 | 805 | 12/20/2022 |
1.1.4 | 924 | 11/27/2022 |
1.1.3 | 1,007 | 11/10/2022 |
1.1.2 | 795 | 11/8/2022 |
1.1.1 | 788 | 11/8/2022 |
1.1.0 | 773 | 11/7/2022 |
1.0.6 | 764 | 11/7/2022 |
1.0.5 | 758 | 11/7/2022 |
1.0.4 | 767 | 11/7/2022 |
1.0.3 | 786 | 11/7/2022 |
1.0.1 | 803 | 11/7/2022 |
1.0.0 | 810 | 11/7/2022 |