public object ReadRequestBody(Type bodyType, byte[] body)
        {
            // Extract text only from request body.
            var text = Encoding.UTF8.GetString(body ?? new byte[0]);

            return(QueryStringParser.ParseQueryString(text));
        }
        private static void Test(string query)
        {
            var parse1 = QueryStringParser.ParseQueryString(query);
            var parse2 = HttpUtility.ParseQueryString(query);

            // ignorecase because HttpUtility.UrlEncode uses lowercase hex digits while WebUtility uses uppercase
            if (!StringComparer.OrdinalIgnoreCase.Equals(parse1.ToString(), parse2.ToString()))
            {
                Assert.Fail($"Expected '{parse2}', got '{parse1}'. Failed on '{query}'");
            }
            parse1.Count.ShouldEqual(parse2.Count, $"Failed on '{query}'");
        }
        public void TestAddAfterParse()
        {
            var p1 = QueryStringParser.ParseQueryString("a=2&c=3");

            p1["a"] = "hi";
            p1.Add("c", "x");
            p1["b"] = "bye";
            p1.ToString().ShouldEqual("a=hi&c=3&c=x&b=bye");

            var p2 = HttpUtility.ParseQueryString("a=2&c=3");

            p2["a"] = "hi";
            p2.Add("c", "x");
            p2["b"] = "bye";
            p2.ToString().ShouldEqual("a=hi&c=3&c=x&b=bye");
        }
Esempio n. 4
0
        public static Response Execute(RelativeUri uri, Func <ISchedulerWrapper> getScheduler)
        {
            var scheduler   = getScheduler();
            var querystring = QueryStringParser.ParseQueryString(uri.Query);

            var group       = querystring["group"];
            var jobNames    = scheduler.GetJobKeys(GroupMatcher <JobKey> .GroupEquals(group));
            var runningJobs = scheduler.GetCurrentlyExecutingJobs();
            var jobs        = jobNames.Select(j => {
                var job           = scheduler.GetJobDetail(j);
                var interruptible = typeof(IInterruptableJob).IsAssignableFrom(job.JobType);
                var jobContext    = runningJobs.FirstOrDefault(r => r.JobDetail.Key.ToString() == job.Key.ToString());
                return(new JobWithContext(job, jobContext, interruptible));
            });
            var paused    = scheduler.IsJobGroupPaused(group);
            var highlight = querystring["highlight"];
            var view      = Views.Views.JobGroup(group, paused, highlight, uri.PathAndQuery, jobs);

            return(new Response.XDocumentResponse(Helpers.XHTML(view)));
        }
 public void TestArgumentValidation()
 {
     UnitTestHelpers.AssertThrows <ArgumentNullException>(() => QueryStringParser.ParseQueryString(null));
     UnitTestHelpers.AssertThrows <ArgumentNullException>(() => HttpUtility.ParseQueryString(null));
 }