Exemple #1
0
        private string MakeSetCookiesUrl(Uri uri, string address = null, bool remember = true)
        {
            var qsc = new QueryStringCollection
            {
                { "Congress", Congress },
                { "StateSenate", StateSenate },
                { "StateHouse", StateHouse },
                { "County", County },
                { "Page", HttpUtility.UrlEncode(uri.ToString()) },
                { "Address", address }
            };

            if (!remember)
            {
                qsc.Add("Remember", "n");
            }
            return(UrlManager.GetStateUri(StateCode, "SetCookies.aspx", qsc).ToString());
        }
        public static QueryStringCollection FromPairs(IEnumerable <string> pairs)
        {
            var list = pairs as IList <string> ?? pairs.ToArray();

            if (list.Count % 2 != 0)
            {
                throw new ArgumentException("pairs entries not paired");
            }
            var qsc = new QueryStringCollection();

            for (var inx = 0; inx < list.Count; inx += 2)
            {
                if (!IsNullOrWhiteSpace(list[inx + 1]))
                {
                    qsc.Add(list[inx], list[inx + 1]);
                }
            }
            return(qsc);
        }
        private static QueryStringCollection Parse(string queryString, bool urldecoded)
        {
            var qsc = new QueryStringCollection();

            if (queryString?.StartsWith("?", StringComparison.Ordinal) == true)
            {
                queryString = queryString.Substring(1);
            }
            if (!IsNullOrEmpty(queryString)) // empty
            {
                var parameters = queryString.Split('&');
                foreach (var parameter in parameters)
                {
                    string key;
                    string value;
                    var    equalPos = parameter.IndexOf('=');
                    if (equalPos < 0) // null key
                    {
                        key   = null;
                        value = parameter;
                    }
                    else
                    {
                        key   = parameter.Substring(0, equalPos);
                        value = parameter.Substring(equalPos + 1);
                    }
                    if (urldecoded)
                    {
                        key   = HttpUtility.UrlDecode(key);
                        value = HttpUtility.UrlDecode(value);
                    }
                    Debug.Assert(key != null, "key != null");
                    Debug.Assert(value != null, "value != null");
                    qsc.Add(key, value);
                }
            }
            return(qsc);
        }