https://github.com/fulviocanducci/canducci.zipcode
Canducci ZipCode From viacep.com.br
https://github.com/fulviocanducci/canducci.zipcode
canducci cep package pacote viacep zip zipcode
Last synced: 6 months ago
JSON representation
Canducci ZipCode From viacep.com.br
- Host: GitHub
- URL: https://github.com/fulviocanducci/canducci.zipcode
- Owner: fulviocanducci
- Created: 2018-03-26T17:49:26.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2024-12-12T20:18:55.000Z (about 1 year ago)
- Last Synced: 2025-06-14T10:18:13.691Z (7 months ago)
- Topics: canducci, cep, package, pacote, viacep, zip, zipcode
- Language: C#
- Homepage: https://www.nuget.org/packages/Canducci.Zip/
- Size: 1.33 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# Canducci ZipCode and AddressCode
[](https://www.nuget.org/packages/Canducci.Zip/)
[](https://www.nuget.org/packages/Canducci.Zip/)
[](https://www.nuget.org/packages/Canducci.Zip/)

## Instalação do Pacote
```
PM> Install-Package Canducci.Zip
```
## Utilização
### Busca de CEP
Para a busca de dados de um determinado número de **CEP** instancie a classe `ZipCodeLoad` e no seu método `Find` ou `FindAsync` passe o número e se a resposta estiver satisfatória os dados estão na classe de resultado `ZipCodeResult`, ***exemplo***:
```csharp
IZipCodeLoad zipCodeLoad = new ZipCodeLoad();
ZipCodeResult result0 = zipCodeLoad.Find("01001000");
if (result0) // ou result0.IsValid
{
ZipCodeItem zipCodeItem = result0; //ou zipCodeItem zipCodeItem = result0.Value;
}
```
A saída da classe `ZipCodeItem` é a seguir:
```
ZipCodeItem.Zip // cep
ZipCodeItem.Address // logradouro
ZipCodeItem.District // bairro
ZipCodeItem.City // localidade
ZipCodeItem.Uf // uf
ZipCodeItem.Ibge // Ibge
ZipCodeItem.Complement // complemento
ZipCodeItem.Gia // gia
ZipCodeItem.Siafi // siafi
ZipCodeItem.Ddd // ddd
ZipCodeItem.Unity // unidade
ZipCodeItem.State // estado
ZipCodeItem.Region // região
```
### Busca de uma lista de CEP
```csharp
IAddressCodeLoad addressCodeLoad = new AddressCodeLoad();
AddressCode addressCode = AddressCode.Parse(ZipCodeUf.SP, "SÃO PAULO", "AVE");
AddressCodeResult result1 = addressCodeLoad.Find(addressCode);
if (result1) // ou result1.IsValid
{
AddressCodeItem items = result1; // ou AddressCodeItem items = result1.Value;
}
```
Note que a saída da classe `AddressCodeItem` é uma enumeração (`List<>`) de `ZipCodeItem`, ou seja, `List`.
### Lista de Unidade Federativa
Tanto no objeto de instancia das classes `AddressCodeLoad` e `ZipCodeLoad` existe um método de extensão que retorna um `IDictionary` que pode ser utilizado em suas telas para padronização da informação, ***exemplo***:
```
IZipCodeLoad zipCodeLoad = new ZipCodeLoad();
IAddressCodeLoad addressCodeLoad = new AddressCodeLoad();
System.Collections.Generic.IDictionary items0_List = zipCodeLoad.UFToList();
System.Collections.Generic.IDictionary items1_List = addressCodeLoad.UFToList();
```
Essas duas variaveis (`items0_List` e `items1_List`) são da mesma instância e são geradas a partir do `Enum` `ZipCodeUf` o mesmo para facilitar na criação de suas `interfaces` de programação.
### Aplicação MVC Core
No exemplo do `controller` `TestController` tem dois métodos:
```c#
[HttpPost]
public async Task Index([FromBody] ZipCodeData data)
{
if (ModelState.IsValid)
{
if (ZipCode.TryParse(data.Value, out ZipCode zipCode))
{
ZipCodeResult zipCodeResult = await ZipCodeLoad.FindAsync(zipCode);
return Json(zipCodeResult);
}
}
return Json(new { IsValid = false });
}
[HttpPost]
public async Task Address([FromBody] AddressCodeData data)
{
if (AddressCode.TryParse(ParseZipCodeUf(data.Uf), data.City, data.Address, out AddressCode addressCode))
{
AddressCodeResult addressCodeResult = await AddressCodeLoad.FindAsync(addressCode);
return Json(addressCodeResult);
}
return Json(new { IsValid = false });
}
private ZipCodeUf ParseZipCodeUf(string uf) => Enum.Parse(uf);
```
com o código que retornar um `json` para `Front-End` de como utilizar o pacote [Canducci.Zip](https://www.nuget.org/packages/Canducci.Zip/) e [nesse link todo o projeto exemplo](https://github.com/fulviocanducci/Canducci.ZipCode/tree/master/WebAppTest).