/// <summary>
        /// Creates a new InitiateExemptCertResult based on a <see cref="BaseResult"/>.
        /// </summary>
        /// <param name="baseResult"></param>
        /// <returns></returns>
        internal static InitiateExemptCertResult CastFromBaseResult(BaseResult baseResult)
        {
            InitiateExemptCertResult result = new InitiateExemptCertResult();

            result.CopyFrom(baseResult);
            return(result);
        }
        public InitiateExemptCertResult InitiateExemptCert(InitiateExemptCertRequest initiateExemptCertRequest)
        {
            try
            {
                _avaLog.Debug("AvaCertSvc.InitiateExemptCert");
                _avaLog.Debug("Validate request");
                Utilities.VerifyRequestObject(initiateExemptCertRequest);

                _avaLog.Debug("Copying exempt certificate into proxy object");
                ProxyInitiateExemptCertRequest proxyRequest = new ProxyInitiateExemptCertRequest();
                initiateExemptCertRequest.CopyTo(proxyRequest);

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


                _avaLog.Debug("Copying result from proxy object");
                InitiateExemptCertResult localResult = new InitiateExemptCertResult();
                localResult.CopyFrom(svcResult);

                return(localResult);
            }
            catch (Exception ex)
            {
                return(InitiateExemptCertResult.CastFromBaseResult(ExceptionManager.HandleException(ex)));
            }
        }