Example #1
0
        public JsonResult Deflate()
        {
            var getController = new GetController();

            getController.ControllerContext = this.ControllerContext;
            return(getController.Index());
        }
Example #2
0
        public JsonResult Index(int seconds)
        {
            if (seconds > 0)
            {
                int milliseconds = seconds * 1000;
                Thread.Sleep(milliseconds);
            }
            var getController = new GetController();

            getController.ControllerContext = this.ControllerContext;
            return(getController.Index());
        }
        public JsonResult Ntlm()
        {
            StringValues authorization;

            if (Request.Headers.TryGetValue("Authorization", out authorization))
            {
                var getController = new GetController();
                getController.ControllerContext = this.ControllerContext;
                return(getController.Index());
            }
            else
            {
                Response.Headers.Add("WWW-Authenticate", "NTLM");
                Response.StatusCode = 401;
                return(Json("401 Unauthorized"));
            }
        }
Example #4
0
        public JsonResult Index()
        {
            if (!Request.Query.TryGetValue("maxlinks", out StringValues maxLinksSV) || !Int32.TryParse(maxLinksSV.FirstOrDefault(), out int maxLinks) || maxLinks < 1)
            {
                maxLinks = 3;
            }

            if (!Request.Query.TryGetValue("linknumber", out StringValues linkNumberSV) || !Int32.TryParse(linkNumberSV.FirstOrDefault(), out int linkNumber) || linkNumber < 1)
            {
                linkNumber = 1;
            }

            string baseUri = Regex.Replace(UriHelper.GetDisplayUrl(Request), "\\?.*", String.Empty);

            string type = Request.Query.TryGetValue("type", out StringValues typeSV) ? typeSV.FirstOrDefault() : "default";

            string whitespace = " ";

            if (type.ToUpper() == "EXTRAWHITESPACE")
            {
                whitespace = "  ";
            }
            else if (type.ToUpper() == "NOWHITESPACE")
            {
                whitespace = string.Empty;
            }

            var linkList = new List <String>();

            if (maxLinks > 1 && linkNumber > 1)
            {
                linkList.Add(GetLink(baseUri: baseUri, maxLinks: maxLinks, linkNumber: linkNumber - 1, type: type, whitespace: whitespace, rel: "prev"));
            }

            linkList.Add(GetLink(baseUri: baseUri, maxLinks: maxLinks, linkNumber: maxLinks, type: type, whitespace: whitespace, rel: "last"));
            linkList.Add(GetLink(baseUri: baseUri, maxLinks: maxLinks, linkNumber: 1, type: type, whitespace: whitespace, rel: "first"));
            linkList.Add(GetLink(baseUri: baseUri, maxLinks: maxLinks, linkNumber: linkNumber, type: type, whitespace: whitespace, rel: "self"));

            bool sendMultipleHeaders = false;
            bool skipNextLink        = false;

            switch (type.ToUpper())
            {
            case "NOURL":
                linkList.Add(Constants.NoUrlLinkHeader);
                skipNextLink = true;
                break;

            case "MALFORMED":
                linkList.Add(Constants.MalformedUrlLinkHeader);
                skipNextLink = true;
                break;

            case "NOREL":
                linkList.Add(Constants.NoRelLinkHeader);
                skipNextLink = true;
                break;

            case "MULTIPLE":
                sendMultipleHeaders = true;
                break;

            default:
                break;
            }

            if (!skipNextLink && maxLinks > 1 && linkNumber < maxLinks)
            {
                linkList.Add(GetLink(baseUri: baseUri, maxLinks: maxLinks, linkNumber: linkNumber + 1, type: type, whitespace: whitespace, rel: "next"));
            }

            StringValues linkHeader;

            if (sendMultipleHeaders)
            {
                linkHeader = linkList.ToArray();
            }
            else
            {
                linkHeader = String.Join(",", linkList);
            }

            Response.Headers.Add("Link", linkHeader);

            // Generate /Get/ result and append linknumber, maxlinks, and type
            var getController = new GetController();

            getController.ControllerContext = this.ControllerContext;
            var result = getController.Index();
            var output = result.Value as Hashtable;

            output.Add("linknumber", linkNumber);
            output.Add("maxlinks", maxLinks);
            output.Add("type", type.FirstOrDefault());

            return(result);
        }