/// <summary> /// searches all suggestions in a forum /// </summary> /// <param name="subdomain">the site's subdomain</param> /// <param name="forumId">the forumId</param> /// <param name="query">the search query</param> /// <param name="consumerKey">your conusmer key</param> /// <param name="consumerSecret">your consumer secret</param> /// <param name="page">the result's page</param> /// <param name="perPage">number of entries per page</param> /// <param name="sort">the status used to order results</param> /// <returns>all suggestions that match the search query in a forum</returns> public async Task <SuggestionsResult> SearchSuggesstions(string subdomain, string query, string consumerKey, string consumerSecret, int forumId, int page = 1, int perPage = 10, SuggestionSort sort = SuggestionSort.newest, SuggestionStatusesResult.Status status = null) { SuggestionsResult result = new SuggestionsResult(); IRestResponse response = await GetSearchSuggestionsResponse(subdomain, query, consumerKey, consumerSecret, forumId, page, perPage, sort, status); if (response.StatusCode == HttpStatusCode.OK) { string jsonContent = Encoding.UTF8.GetString(response.RawBytes, 0, response.RawBytes.Length); result = JsonConvert.DeserializeObject <SuggestionsResult>(jsonContent); } return(result); }
/// <summary> /// request to search all suggestions in a forum /// </summary> /// <param name="subdomain">the site's subdomain</param> /// <param name="forumId">the forumId</param> /// <param name="query">the search query</param> /// <param name="consumerKey">your conusmer key</param> /// <param name="consumerSecret">your consumer secret</param> /// <param name="page">the result's page</param> /// <param name="perPage">number of entries per page</param> /// <param name="sort">the status used to order results</param> /// <returns>the response for the search request of all suggestions in a forum</returns> private async Task <IRestResponse> GetSearchSuggestionsResponse(string subdomain, string query, string consumerKey, string consumerSecret, int forumId, int page = 1, int perPage = 10, SuggestionSort sort = SuggestionSort.newest, SuggestionStatusesResult.Status status = null) { _client = new RestClient(string.Format("https://{0}.uservoice.com/api/v1/forums/{1}/suggestions/", subdomain, forumId)); _client.Authenticator = OAuth1Authenticator.ForProtectedResource(consumerKey, consumerSecret, null, null); RestRequest request = new RestRequest("search.json", HttpMethod.Get); request.AddHeader("If-Modified-Since", DateTime.Now.ToUniversalTime().ToString("R")); request.AddParameter("query", query); request.AddParameter("sort", sort); if (status != null && status.id != 0) { request.AddParameter("status_id", status.id); } request.AddParameter("page", page); request.AddParameter("per_page", perPage); return(await _client.Execute(request)); }