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)));
            }
        }
        internal void CopyTo(ProxyValidateRequest SvcRequest)
        {
            ProxyBaseAddress proxyAddress = new ProxyBaseAddress();

            this.Address.CopyTo(proxyAddress);

            SvcRequest.Address  = proxyAddress;
            SvcRequest.TextCase = (ProxyTextCase)this.TextCase;
            //added for 4.13 release
            SvcRequest.Coordinates = _coordinates;
            //added for 5.1 release
            SvcRequest.Taxability = _taxability;
        }