public async Task <VkItemsResponse <VkGroup> > Search(string query, VkGroupSearchType sort = VkGroupSearchType.ByUsers, int count = 0, int offset = 0) { var parameters = new Dictionary <string, string>(); if (!string.IsNullOrEmpty(query)) { parameters.Add("q", query); } parameters.Add("sort", ((int)sort).ToString()); if (count > 0) { parameters.Add("count", count.ToString()); } if (offset > 0) { parameters.Add("offset", offset.ToString()); } _vkontakte.SignMethod(parameters); var response = await VkRequest.GetAsync(VkConst.MethodBase + "groups.search", parameters); if (response.SelectToken("response.items") != null) { return(new VkItemsResponse <VkGroup>((from g in response["response"]["items"] where g.HasValues select VkGroup.FromJson(g)).ToList(), response["response"]["count"].Value <int>())); } return(VkItemsResponse <VkGroup> .Empty); }
public async Task <VkItemsResponse <VkGroup> > Search(string query, VkGroupSearchType sort = VkGroupSearchType.ByUsers, int count = 0, int offset = 0) { if (_vkontakte.AccessToken == null || string.IsNullOrEmpty(_vkontakte.AccessToken.Token) || _vkontakte.AccessToken.HasExpired) { throw new Exception("Access token is not valid."); } var parameters = new Dictionary <string, string>(); if (!string.IsNullOrEmpty(query)) { parameters.Add("q", query); } parameters.Add("sort", ((int)sort).ToString()); if (count > 0) { parameters.Add("count", count.ToString()); } if (offset > 0) { parameters.Add("offset", offset.ToString()); } _vkontakte.SignMethod(parameters); var response = await new VkRequest(new Uri(VkConst.MethodBase + "groups.search"), parameters).Execute(); VkErrorProcessor.ProcessError(response); if (response.SelectToken("response.items") != null) { return(new VkItemsResponse <VkGroup>((from g in response["response"]["items"] where g.HasValues select VkGroup.FromJson(g)).ToList(), response["response"]["count"].Value <int>())); } return(VkItemsResponse <VkGroup> .Empty); }
public async Task<VkItemsResponse<VkGroup>> Search(string query, VkGroupSearchType sort = VkGroupSearchType.ByUsers, int count = 0, int offset = 0) { if (_vkontakte.AccessToken == null || string.IsNullOrEmpty(_vkontakte.AccessToken.Token) || _vkontakte.AccessToken.HasExpired) throw new Exception("Access token is not valid."); var parameters = new Dictionary<string, string>(); if (!string.IsNullOrEmpty(query)) parameters.Add("q", query); parameters.Add("sort", ((int)sort).ToString()); if (count > 0) parameters.Add("count", count.ToString()); if (offset > 0) parameters.Add("offset", offset.ToString()); _vkontakte.SignMethod(parameters); var response = await new VkRequest(new Uri(VkConst.MethodBase + "groups.search"), parameters).Execute(); VkErrorProcessor.ProcessError(response); if (response.SelectToken("response.items") != null) { return new VkItemsResponse<VkGroup>((from g in response["response"]["items"] where g.HasValues select VkGroup.FromJson(g)).ToList(), response["response"]["count"].Value<int>()); } return VkItemsResponse<VkGroup>.Empty; }