示例#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;
        }
    }