Exemplo n.º 1
0
 /// <summary>
 /// The AdditionalData of a node is always populated with the query string data, this method performs this
 /// operation and ensures that special values are not inserted or that duplicate keys are not added.
 /// </summary>
 /// <param name="node"></param>
 /// <param name="queryStrings"></param>
 protected void AddQueryStringsToAdditionalData(TreeNode node, FormCollection queryStrings)
 {
     foreach (var q in queryStrings.Where(x => node.AdditionalData.ContainsKey(x.Key) == false))
     {
         node.AdditionalData.Add(q.Key, q.Value);
     }
 }
        /// <summary>
        /// Converts a dictionary object to a query string representation such as:
        /// firstname=shannon&lastname=deminick
        /// </summary>
        /// <param name="items"></param>
        /// <param name="keysToIgnore">Any keys found in this collection will be removed from the output</param>
        /// <returns></returns>
        public static string ToQueryString(this FormCollection items, params string[] keysToIgnore)
        {
            if (items == null)
            {
                return("");
            }
            if (items.Any() == false)
            {
                return("");
            }

            var builder = new StringBuilder();

            foreach (var(key, value) in items.Where(i => keysToIgnore.InvariantContains(i.Key) == false))
            {
                builder.Append($"{key}={value}&");
            }
            return(builder.ToString().TrimEnd(Constants.CharArrays.Ampersand));
        }