protected internal UriBuilder BuildApiUrl(string facet, string signature, long expires, Authentication authentication, string guidString = null, string app = null, bool paging = false, string next = null) { ProviderSettings providerSettings = new ProviderSettings(); string url = providerSettings.getConfigValue("API_URL"); string queryString = string.Empty; UriBuilder requestBuilder = new UriBuilder(url); queryString = FormQueryString(facet, providerSettings, guidString, app, paging, next, url); requestBuilder.Query = string.Format(queryString + "&partner.id={0}&auth.signature={1}&auth.expires={2}&user.id={3}", WebUtility.UrlEncode(authentication.partnerID), WebUtility.UrlEncode(signature), expires, WebUtility.UrlEncode(authentication.userId.ToString()) ); return(requestBuilder); }
protected string FormQueryString(string facet, ProviderSettings providerSettings, string guidString = null, string app = null, bool paging = false, string next = null, string url = null) { string queryString = string.Empty; if (facet == "document.publication.regions" || string.IsNullOrEmpty(facet)) { queryString = providerSettings.getConfigValue("COUNTRY_QUERY"); } else { if (facet == "document.publication.authorities") { queryString = providerSettings.getConfigValue("AUTHORITIES_QUERY"); } else if (facet == "document.publication") { queryString = providerSettings.getConfigValue("PUBLICATION_QUERY"); } else if (facet == "document") { queryString = providerSettings.getConfigValue("DOCUMENT_QUERY"); } else if (facet == "section") { queryString = providerSettings.getConfigValue("SECTION_QUERY"); } else if (facet == "standardsetsummary") { queryString = providerSettings.getConfigValue("SUMMARY_QUERY"); } else if (facet == "disciplines.subjects") { queryString = providerSettings.getConfigValue("SUBJECT_QUERY"); } else if (facet == "grid") { queryString = providerSettings.getConfigValue("GRID_QUERY"); } else if (facet == "standardset") { if (!string.IsNullOrEmpty(app)) { if (app == "webcms") { queryString = providerSettings.getConfigValue("STANDARD_QUERY_WEBCMS"); } } else { queryString = providerSettings.getConfigValue("STANDARD_QUERY"); } //if paging then append offset value if (paging) { queryString = next.Replace(url + "?", "").Replace("&user.id=+", ""); } } else { queryString = string.Empty; guidString = null; } if (queryString.Contains("@Guid")) { guidString = '\'' + guidString + '\''; queryString = queryString.Replace("@Guid", guidString); } } return(queryString); }