public ValidateResult Validate(ValidateRequest validateRequest)
        {
            try
            {
                _avaLog.Debug("AddressSvc.Validate");

                Utilities.VerifyRequestObject(validateRequest);

                _avaLog.Debug("Copying address into proxy object");
                ProxyValidateRequest proxyRequest = new ProxyValidateRequest();
                validateRequest.CopyTo(proxyRequest);
                //Record time take for address validation
                Perf monitor = new Perf();
                monitor.Start();

                ProxyValidateResult svcResult = (ProxyValidateResult)base.InvokeService(typeof(ProxyAddressSvc), MethodBase.GetCurrentMethod().Name, new object[] { proxyRequest });

                monitor.Stop(this, ref svcResult);
                _avaLog.Debug("Copying address from proxy object");
                ValidateResult localResult = new ValidateResult();
                localResult.CopyFrom(svcResult);

                return(localResult);
            }
            catch (Exception ex)
            {
                return(ValidateResult.CastFromBaseResult(ExceptionManager.HandleException(ex)));
            }
        }
        /// <summary>
        /// Load an empty local ValidateResult object from the data provided by the web service.
        /// </summary>
        /// <param name="SvcResult">The ValidateResult object provided by the web service.</param>
        internal void CopyFrom(ProxyValidateResult SvcResult)
        {
            base.CopyFrom(SvcResult);

            //iterate through addresses returned by the web service and move them into
            //    a local address object and local arraylist
            if (SvcResult.ValidAddresses != null)
            {
                for (int Index = 0; Index < SvcResult.ValidAddresses.Length; Index++)
                {
                    ProxyValidAddress SvcAddress   = SvcResult.ValidAddresses[Index];
                    ValidAddress      localAddress = new ValidAddress();

                    localAddress.CopyFrom(SvcAddress);
                    //((ValidAddresses)Addresses).Add( localAddress );
                    _addresses.Add(localAddress);
                    _taxable = SvcResult.Taxable;
                }
            }
        }