[WebMethod] // anotação que faz com que este método seja reconhecido no web service public ZipCodeInfo[] searchByAddress(int paramUf, string paramCity, string paramAddress) // searchByAddress é um método do web service que iremos utilizar para fazer a pesquisa pelo uf, cidade e endereço informados como parâmetro. { try { //Observações //Cidade no minimo 3 letras //Endereço no minimo 3 letras ZipCodeLoad zipLoad = new ZipCodeLoad(); // instanciando o objeto de um serviço externo de cep ZipCodeInfo[] zipCodeInfos = null; // criando a variável de retorno, que é uma lista, mas atribuímos um valor nulo, por enquanto // criamos uma variável uf para identificar de qual uf iremos fazer a pesquisa, de acordo com a uf informada ZipCodeUf uf = (ZipCodeUf)Enum.GetValues(typeof(ZipCodeUf)).GetValue(paramUf); AddressCode addressCode = null; // criamos uma variável e atribuímos o valor nulo pra ela if (AddressCode.TryParse(uf, paramCity, paramAddress, out addressCode)) // convertemos nossos parâmetros em um endereço válido e atribuímos a variável criada anteriormente { zipCodeInfos = zipLoad.Address(addressCode); // consumimos o serviço que faz a pesquisa do endereço e retornamos seu resultado a variável de lista que criamos anteriormente } return(zipCodeInfos); // retornamos os resultados em forma de lista } catch (ZipCodeException ex) // em caso de erro no código acima este método é chamado e executado, fazendo com que seja retornado um erro, no formato xml { throw ex; } }
public void TestTestAddressCodeTryParseFalse() { bool result = AddressCode .TryParse(ZipCodeUf.SP, "", "", out AddressCode addressCode); Assert.IsFalse(result); Assert.IsNull(addressCode); }
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 })); }
public void TestTestAddressCodeTryParse() { bool result = AddressCode .TryParse(ZipCodeUf.SP, "SÃO PAULO", "AVENIDA", out AddressCode addressCode); Assert.AreEqual(ZipCodeUf.SP, addressCode.Uf); Assert.AreEqual("SÃO PAULO", addressCode.City); Assert.AreEqual("AVENIDA", addressCode.Address); Assert.IsTrue(result); Assert.IsInstanceOfType(addressCode.GetType(), typeof(AddressCode).GetType()); }