public async Task <IHttpActionResult> Msg1()
        {
            log.Debug("Msg1(.) started.");

            bool              error      = false;
            HttpStatusCode    errorCode  = System.Net.HttpStatusCode.InternalServerError;
            M2ResponseMessage m2Response = null;

            try
            {
                m2Response = await ClientDatabase.Message1(this.Request);
            }
            catch (WebException we)
            {
                error = true;
                log.Debug("Web Exception in Provisioning Request: " + we.Message);
                HttpWebResponse WebResponse = we.Response as HttpWebResponse;
                errorCode = (HttpStatusCode)WebResponse.StatusCode;
            }
            catch (HttpResponseException re)
            {
                error = true;
                log.Debug("HttpResponseException in Message 1/2: " + re.Message);
                errorCode = (HttpStatusCode)re.Response.StatusCode;
            }
            catch (Exception e)
            {
                error = true;
                log.Debug("******* M1 Content Error");
                log.Debug("Error: " + e.Message);
                errorCode = System.Net.HttpStatusCode.InternalServerError;
            }

            // Return response to client
            if (error)
            {
                log.DebugFormat("Msg1(.) returning HTTP status code {0}.", errorCode);
                try
                {
                    ClientDatabase.RemoveTransaction(this.Request, Constants.msg1Str);
                }
                catch (Exception e)  // This catches HttpResponseException also, which is what we want here
                {
                    log.Debug("Exception in Message 1/2 while error cleanup RemoveTransaction(): " + e.Message);
                }
                return(StatusCode(errorCode));
            }
            else
            {
                log.Debug("Msg1(.) returning HTTP status success.");
                return(Json(m2Response));
            }
        }