/// <summary>
        /// Build HTML from a RestResponse
        /// </summary>
        /// <param name="response"></param>
        /// <returns></returns>
        public static string BuildHtml(RestResponse response)
        {
            string[] blocks = (response == null
                ? null
                : new string[] { "<b>Status Code:</b>" + response.StatusCode, "<b>Body:</b>\n" + response.PrettyBody });

            string htmlHead = @"
            <head>
                <meta name=""viewport"" content=""width=device-width, initial-scale=1.0, maximum-scale=1.0; user-scalable=no"" />
                <style>
                    body { background-color: black; color: white; }
                    pre {border: 1px solid white; padding: 5px; word-wrap: break-word;}
                </style>
            </head>
            ";

            StringBuilder sb = new StringBuilder(htmlHead);

            sb.Append("<body>");

            if (blocks != null)
            {
                foreach (string block in blocks)
                {
                    sb.Append("<pre>").Append(block).Append("</pre>");
                }
            }
            sb.Append("</body>");

            return sb.ToString();
        }
 /// <summary>
 ///     Helper method to show a RestResponse (formatted) in the result webbrowser control
 /// </summary>
 /// <param name="response"></param>
 private void ShowResponse(RestResponse response)
 {
     wbResult.NavigateToString(RestActionViewHelper.BuildHtml(response));
 }
 private void CheckResponse(RestResponse response, HttpStatusCode expectedStatusCode, bool isJArray)
 {
     Assert.AreEqual(expectedStatusCode, response.StatusCode);
     try
     {
         if (isJArray)
         {
             Assert.IsNotNull(response.AsJArray);
         }
         else
         {
             Assert.IsNotNull(response.AsJObject);
         }
     }
     catch
     {
         Assert.Fail("Failed to parse response body");
     }
 }
        private JArray ParseSoapResponse(RestResponse response)
        {
            var records = new JArray();
            XDocument doc = XDocument.Parse(response.AsString);
            XElement qLocator = doc.Descendants().FirstOrDefault(n => QueryLocator.Equals(n.Name.LocalName));
            _queryLocator = (qLocator != null ? qLocator.Value : null);

            XElement xmlRecords = doc.Descendants().FirstOrDefault(n => Records.Equals(n.Name.LocalName));
            if (xmlRecords != null)
            {
                var jRecord = new JObject();
                foreach (XNode next in xmlRecords.DescendantNodes())
                {
                    var record = next as XElement;

                    if (record != null)
                    {
                        if (Type.Equals(record.Name.LocalName))
                        {
                            var attrType = new JObject {{Type, record.Value}};
                            jRecord[Constants.Attributes] = attrType;
                        }
                        else
                        {
                            jRecord[record.Name.LocalName] = record.Value;
                        }
                    }
                }
                records.Add(jRecord);
            }
            return records;
        }