Example #1
0
        private Response GetSchemas()
        {
            var res = new Response();

            var schemas = new SchemaGenerator(this.typeMapper).Generate().ToJson();
            res.ContentsFromString(schemas);
            res.ContentType = "text/plain; charset=utf-8";

            return res;
        }
Example #2
0
        public static void CreatePrettifiedHtmlJsonResponse(Response res, string htmlLinks, string json, string baseUri)
        {
            var htmlPageTemplate =
                @"<!DOCTYPE HTML>
            <head>
              <meta charset='utf-8'>
              <style type=""text/css"">
            ul
            {{
            list-style-type: none;
            padding: 0px;
            margin: 0px;
            }}
            .search
            {{
            width: 450px;
            }}
            ul li
            {{
            padding-left: 14px;
            display: inline;
            }}  </style>
            </head>
            <html>
            <div><ul>{1}</ul></div>
            <div>
              <form action=""{2}"" method=""get"">
            <div>Query <input type=""text"" class=""search"" name=""$filter"" /></div>
            <div>Expand <input type=""text"" class=""search"" name=""$expand"" /></div>
            <input type=""submit"" value=""Submit"" />
              </form>
            </div>
            <div>
            <pre class=""prettyprint"">
            {0}
            </pre>
            </div>
            </body>
            </html>";
            var sb = new StringBuilder();
            var jsonIndex = 0;

            while (jsonIndex < json.Length)
            {
                var linkStart = json.IndexOf("\"http://", jsonIndex, StringComparison.Ordinal);
                if (linkStart == -1)
                    linkStart = json.IndexOf("\"https://", jsonIndex, StringComparison.Ordinal);

                if (linkStart != -1)
                {
                    linkStart++; // Skip the quote (")
                    sb.Append(HttpUtility.HtmlEncode(json.Substring(jsonIndex, linkStart - jsonIndex)));

                    var linkEnd = json.IndexOf('"', linkStart);
                    linkEnd = linkEnd != -1 ? linkEnd : json.Length;

                    var link = json.Substring(linkStart, linkEnd - linkStart);
                    sb.AppendFormat("<a href=\"{0}\">{1}</a>", link, HttpUtility.HtmlEncode(link));

                    jsonIndex = linkEnd;
                }
                else
                {
                    sb.Append(HttpUtility.HtmlEncode(json.Substring(jsonIndex)));
                    jsonIndex = json.Length;
                }
            }

            var prettifiedJsonHtml = string.Format(htmlPageTemplate, sb, htmlLinks, baseUri);
            res.ContentsFromString(prettifiedJsonHtml);
            res.ContentType = "text/html; charset=utf-8";
        }