private void AddNativeQueryString <TSource>(PropertyInfo prop, TSource source, string path = "") { var fullPath = GetFullPath(prop, path); var propValue = prop.GetValue(source); if (propValue == null) { return; } var propValueResult = prop.GetValue(source); if (prop.PropertyType == typeof(DateTime?)) { propValueResult = ((DateTime?)propValueResult).GetValueOrDefault().ToString("yyyy-MM-dd"); } if (prop.PropertyType == typeof(DateTime)) { propValueResult = ((DateTime)propValueResult).ToString("yyyy-MM-dd"); } QueryStringCollection.Add(fullPath.ToString(), propValueResult.ToString()); }
internal QueryStringCollection ToQueryString() { var result = new QueryStringCollection(); foreach (var property in GetType().GetProperties()) { var value = property.GetValue(this); if (value != null) { result.Add(ToSnakeCase(property.Name), value.ToString()); } } return result; }
/// <summary> /// Creates an query string for a facet /// </summary> /// <param name="facetQuery">The facet query.</param> /// <param name="facetName">Name of the facet.</param> /// <param name="facetValue">The facet value.</param> /// <returns>The query string for the facet.</returns> private static string GetFacetQueryString(string facetQuery, string facetName, string facetValue) { var facetCollection = new QueryStringCollection(); if (!string.IsNullOrEmpty(facetQuery)) { facetCollection.Parse(HttpUtility.UrlDecode(facetQuery)); } if (facetCollection.Contains(facetName)) { var facetQueryValues = facetCollection[facetName]; if (facetQueryValues.Contains(facetValue)) { var newFacetQueryValues = string.Empty; var facetValues = facetQueryValues.Split('|').Where(p => !string.Equals(p, facetValue, StringComparison.OrdinalIgnoreCase)).ToList(); if (facetValues.Count() > 0) { facetCollection.Set(facetName, string.Join("|", facetValues)); } else { facetCollection.Remove(facetName); } } else { facetCollection.Set(facetName, facetQueryValues + StorefrontConstants.QueryStrings.FacetsSeparator + facetValue); } } else { facetCollection.Add(facetName, facetValue); } return(facetCollection.ToString()); }
private void AddSimpleQueryString <TSource>(TSource source, string path = "") { var fullPath = GetFullPathWithoutPropertyInfo(path); QueryStringCollection.Add(fullPath.ToString(), source.ToString()); }
/// <summary> /// Creates an query string for a facet /// </summary> /// <param name="facetQuery">The facet query.</param> /// <param name="facetName">Name of the facet.</param> /// <param name="facetValue">The facet value.</param> /// <returns>The query string for the facet.</returns> private static string GetFacetQueryString(string facetQuery, string facetName, string facetValue) { var facetCollection = new QueryStringCollection(); if (!string.IsNullOrEmpty(facetQuery)) { facetCollection.Parse(HttpUtility.UrlDecode(facetQuery)); } if (facetCollection.Contains(facetName)) { var facetQueryValues = facetCollection[facetName]; if (facetQueryValues.Contains(facetValue)) { var newFacetQueryValues = string.Empty; var facetValues = facetQueryValues.Split('|').Where(p => !string.Equals(p, facetValue, StringComparison.OrdinalIgnoreCase)).ToList(); if (facetValues.Count() > 0) { facetCollection.Set(facetName, string.Join("|", facetValues)); } else { facetCollection.Remove(facetName); } } else { facetCollection.Set(facetName, facetQueryValues + StorefrontConstants.QueryStrings.FacetsSeparator + facetValue); } } else { facetCollection.Add(facetName, facetValue); } return facetCollection.ToString(); }
internal static NameValueCollection InternalParseQueryString(string query, Encoding encoding) { int len; if (query == null || (len = query.Length) == 0 || (len == 1 && query[0] == '?')) return new NameValueCollection (1); if (query[0] == '?') query = query.Substring (1); var res = new QueryStringCollection (); var components = query.Split ('&'); foreach (var component in components) { var i = component.IndexOf ('='); if (i > -1) { var name = UrlDecode (component.Substring (0, i), encoding); var val = component.Length > i + 1 ? UrlDecode (component.Substring (i + 1), encoding) : String.Empty; res.Add (name, val); } else { res.Add (null, UrlDecode (component, encoding)); } } return res; }
public void AddQueryString(string key, string value) { QueryStringCollection.Add(key, value); }