Exemplo n.º 1
0
    [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());
        }