/// <summary>
        /// Retrieve a formatted address.
        /// </summary>
        /// <param name="identifier">The address identifier.</param>
        /// <returns>A formatted address.</returns>
        protected override QAAddressType DoRetrieve(string identifier)
        {
            DoGetExampleAddressesRequest request = new DoGetExampleAddressesRequest
                                                   {
                                                       QAQueryHeader = this.GetQueryHeader(),
                                                       QAGetExampleAddresses = new QAGetExampleAddresses
                                                                               {
                                                                                   Country = this.CountryCode,
                                                                                   Layout = this.Layout
                                                                               }
                                                   };

            QAPortType client = new QAPortTypeClient();
            DoGetExampleAddressesResponse response = client.DoGetExampleAddresses(request);

            QAAddressType address;
            switch (this.Type)
            {
                case "Blank":
                    address = response.QAExampleAddresses[0].Address;
                    break;
                case "Complex":
                    address = response.QAExampleAddresses[2].Address;
                    break;
                case "PO Box":
                    address = response.QAExampleAddresses[3].Address;
                    break;
                default:
                    address = response.QAExampleAddresses[1].Address;
                    break;
            }

            return address;
        }
Пример #2
0
        public QASearchResult ValidateAddress(QASearch search)
        {
            _log.Info("InvokeQasService.ValidateAddress() starting ...");
            QAPortTypeClient client = null;
            QASearchResult   result = null;

            try
            {
                client = new QAPortTypeClient();
                _log.Info("InvokeQasService.ValidateAddress() client created ...");
                int retryCount = 0;
                result = client.DoSearch(search);
                if (result == null && retryCount == 0)
                {
                    // retry once
                    result = client.DoSearch(search);
                    retryCount++;
                }
                _log.Info("InvokeQasService.ValidateAddress() result was returned from service ...");
            }
            catch (TimeoutException timeout)
            {
                _log.Error("InvokeQasService.ValidateAddress() Timeout Exception:" + timeout.Message);
                ProxyHelper.HandleServiceException(client);
            }
            catch (CommunicationException comm)
            {
                _log.Error("InvokeQasService.ValidateAddress() Communication Exception:" + comm.Message);
                ProxyHelper.HandleServiceException(client);
            }
            catch (Exception e)
            {
                _log.Error("InvokeQasService.ValidateAddress() Exception:" + e.Message);
            }
            finally
            {
                if (client != null && client.State != CommunicationState.Closed)
                {
                    ProxyHelper.CloseChannel(client);
                }
            }

            _log.Info("InvokeQasService.ValidateAddress() ending ...");
            return(result);
        }
Пример #3
0
        /// <summary>
        /// Retrieve a formatted address.
        /// </summary>
        /// <param name="identifier">The address identifier.</param>
        /// <returns>A formatted address.</returns>
        protected virtual QAAddressType DoRetrieve(string identifier)
        {
            DoGetAddressRequest request = new DoGetAddressRequest
                                          {
                                              QAQueryHeader = this.GetQueryHeader(),
                                              QAGetAddress = new QAGetAddress
                                                             {
                                                                 Layout = this.Layout,
                                                                 Moniker = identifier
                                                             }
                                          };
            ////request.QAGetAddress.Country = this.CountryCode;
            ////request.QAGetExampleAddresses.RequestTag = this.Layout;

            QAPortType client = new QAPortTypeClient();
            DoGetAddressResponse response = client.DoGetAddress(request);

            return response.Address.QAAddress;
        }
Пример #4
0
        /// <summary>
        /// Search for an address.
        /// </summary>
        /// <param name="searchTerm">The address search term.</param>
        /// <returns>A list of addresses that match the search.</returns>
        protected virtual AddressSearchResultList DoSearch(string searchTerm)
        {
            DoSearchRequest request = new DoSearchRequest
                                      {
                                          QAQueryHeader = this.GetQueryHeader(),
                                          QASearch = new QASearch
                                                     {
                                                         Country = this.CountryCode,
                                                         Engine = new EngineType(),
                                                         Layout = this.Layout,
                                                         Search = searchTerm
                                                     }
                                      };

            QAPortType client = new QAPortTypeClient();
            DoSearchResponse searchResponse = client.DoSearch(request);

            AddressSearchResultList resultList = new AddressSearchResultList();
            resultList.AddRange(searchResponse.QASearchResult.QAPicklist.PicklistEntry.Select(entry => new AddressSearchResult
                                                                                                       {
                                                                                                           DisplayAddress = entry.Picklist,
                                                                                                           AddressIdentifier = entry.Moniker
                                                                                                       }));

            return resultList;
        }