/// <summary> /// Resolves the query string items /// </summary> /// <returns>The query string items</returns> /// <param name="queryString">Query string</param> public static QueryStringDictionary Resolve(string queryString) { QueryStringDictionary queryStringDictionary = new QueryStringDictionary(); if (string.IsNullOrEmpty(queryString)) { return(queryStringDictionary); } string key = null, value = null; foreach (string queryStringItem in queryString.Split('&')) { string[] splittedQueryStringItem = queryStringItem.Split('='); key = splittedQueryStringItem[0]; value = string.Join("=", splittedQueryStringItem, 1, splittedQueryStringItem.Length - 1); if (!string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(value)) { queryStringDictionary[key] = value; } } return(queryStringDictionary); }
/// <summary> /// Resolves the query string items /// </summary> /// <returns>The query string items</returns> /// <param name="queryString">Query string</param> public static QueryStringDictionary Resolve(string queryString) { QueryStringDictionary queryStringDictionary = new QueryStringDictionary(); if (string.IsNullOrEmpty(queryString)) { return(queryStringDictionary); } foreach (string queryStringItem in queryString.Split('&')) { string[] queryStringItems = queryStringItem.Split('='); string key = queryStringItems[0]; string value = string.Join("=", queryStringItems, 1, queryStringItems.Length - 1); if (!string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(value)) { queryStringDictionary[key] = value; } } return(queryStringDictionary); }
/// <summary> /// Make the query string dictionary using keyvalue pairs /// </summary> /// <returns>The query string dictionary</returns> /// <param name="queryStrings">Query strings</param> public static QueryStringDictionary Make(params KeyValuePair <string, string>[] queryStrings) { QueryStringDictionary queryStringDictionary = new QueryStringDictionary(); if (queryStrings == null) { return(queryStringDictionary); } foreach (KeyValuePair <string, string> item in queryStrings) { if (!item.Equals(null) && !string.IsNullOrEmpty(item.Key) && !string.IsNullOrEmpty(item.Value)) { queryStringDictionary[item.Key] = item.Value; } } return(queryStringDictionary); }
/// <summary> /// Creates the Xeora URL with variable pool accessibilities /// </summary> /// <returns>Xeora URL</returns> /// <param name="useSameVariablePool">If set to <c>true</c> uses same variable pool with the current request</param> /// <param name="serviceFullPath">Valid Xeora Service Full Path</param> /// <param name="queryStringDictionary">Query string dictionary</param> public static string CreateURL(bool useSameVariablePool, string serviceFullPath, QueryStringDictionary queryStringDictionary = null) { string rString = null; string applicationRoot = Configurations.Xeora.Application.Main.ApplicationRoot.BrowserImplementation; if (!useSameVariablePool) { rString = string.Format("{0}{1}", applicationRoot, serviceFullPath); } else { rString = string.Format("{0}{1}/{2}", applicationRoot, Helpers.Context.HashCode, serviceFullPath); } if (queryStringDictionary != null && queryStringDictionary.Count > 0) { rString = string.Concat(rString, "?", queryStringDictionary.ToString()); } return(rString); }
/// <summary> /// Creates the Xeora URL with variable pool accessibilities /// </summary> /// <returns>Xeora URL</returns> /// <param name="useSameVariablePool">If set to <c>true</c> uses same variable pool with the current request</param> /// <param name="serviceFullPath">Valid Xeora Service Full Path</param> /// <param name="queryStrings">Query string definitions (if any)</param> public static string CreateURL(bool useSameVariablePool, string serviceFullPath, params KeyValuePair <string, string>[] queryStrings) => Helpers.CreateURL(useSameVariablePool, serviceFullPath, QueryStringDictionary.Make(queryStrings));
/// <summary> /// Creates the Xeora URL with variable pool accessibilities /// </summary> /// <returns>Xeora URL</returns> /// <param name="serviceFullPath">Valid Xeora Service Full Path</param> /// <param name="queryStringDictionary">Query string dictionary</param> public static string CreateURL(string serviceFullPath, QueryStringDictionary queryStringDictionary = null) => Helpers.CreateURL(true, serviceFullPath, queryStringDictionary);
/// <summary> /// Resolves the query string items of current request /// </summary> /// <returns>The query string items</returns> public static QueryStringDictionary Resolve() => QueryStringDictionary.Resolve(Helpers.Context.Request.Header.URL.QueryString);
/// <summary> /// Creates the Xeora Url with variable pool accessibility /// </summary> /// <returns>Xeora Url</returns> /// <param name="useSameVariablePool">If set to <c>true</c> uses same variable pool with the current request</param> /// <param name="serviceFullPath">Valid Xeora Service Full Path</param> /// <param name="queryStringDictionary">Query string dictionary</param> public static string CreateUrl(bool useSameVariablePool, string serviceFullPath, QueryStringDictionary queryStringDictionary = null) { string applicationRoot = Configurations.Xeora.Application.Main.ApplicationRoot.BrowserImplementation; string rString = !useSameVariablePool ? $"{applicationRoot}{serviceFullPath}" : $"{applicationRoot}{Helpers.Context.HashCode}/{serviceFullPath}"; if (queryStringDictionary != null && queryStringDictionary.Count > 0) { rString = string.Concat(rString, "?", queryStringDictionary.ToString()); } return(rString); }