public string GetQueryString() { if (string.IsNullOrEmpty(SearchQuery)) { throw new ArgumentNullException("Query string must be specified."); } var q = new StringBuilder(); q.Append($"q={WebUtility.UrlEncode(SearchQuery)}"); foreach (var value in Enum.GetValues(typeof(QueryFields))) { if (RequestFields.HasFlag((QueryFields)value)) { q.Append($"&fl%5B%5D={FieldMap[(QueryFields)value]}"); } } if (sortSelections != null && sortSelections.Length > 0) { foreach (var sel in sortSelections) { q.Append($"&sort%5B%5D={sel.ToString()}"); } } q.Append($"&rows={NumberOfResults}&page={Page}&output=json"); return(q.ToString()); }