/// <summary>
        /// Decomposes the query string.
        /// </summary>
        /// <param name="uri">The full uri.</param>
        /// <returns>The query string values.</returns>
        public static IDictionary <string, string> GetQueryString(string uri)
        {
            var pairs = new Dictionary <string, string>();

            var queryString = uri.Split('?');

            if (queryString.Length < 2)
            {
                return(pairs);
            }

            var keyValuePairs = queryString[1].Split('&');

            foreach (var keyValuePair in keyValuePairs)
            {
                if (keyValuePair.IndexOf('=') > 0)
                {
                    var pair = keyValuePair.Split('=');
                    pairs.Add(pair[0], Web.UrlDecode(pair[1]));
                }
            }

            return(pairs);
        }