Code Monkey home page Code Monkey logo

canducci.zipcode's Introduction

Canducci ZipCode and AddressCode

Canducci.Zip

Version NuGet Build Status Github Workflows

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:

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

Busca de uma lista de CEP

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<ZipCodeItem>.

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<string, string> 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<string, string> items0_List = zipCodeLoad.UFToList(); 
System.Collections.Generic.IDictionary<string, string> 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:

[HttpPost]
public async Task<IActionResult> 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<IActionResult> 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<ZipCodeUf>(uf);

com o código que retornar um json para Front-End de como utilizar o pacote Canducci.Zip e nesse link todo o projeto exemplo.

canducci.zipcode's People

Contributors

fulviocanducci avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.