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

            bool              error      = false;
            HttpStatusCode    errorCode  = System.Net.HttpStatusCode.InternalServerError;
            M0ResponseMessage m0Response = null;

            try
            {
                m0Response = await ClientDatabase.Message0(this.Request);
            }

            catch (WebException we)
            {
                error = true;
                log.Debug("Web Exception in Message 0: " + we.Message);
                HttpWebResponse WebResponse = we.Response as HttpWebResponse;
                errorCode = (HttpStatusCode)WebResponse.StatusCode;
            }
            catch (HttpResponseException re)
            {
                error = true;
                log.Debug("HttpResponseException in Message 0: " + re.Message);
                errorCode = (HttpStatusCode)re.Response.StatusCode;
            }
            catch (Exception e)
            {
                error = true;
                log.Debug("******* M0 Content Error");
                log.Debug("Error: " + e.Message);
                errorCode = System.Net.HttpStatusCode.InternalServerError;
            }

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