public ReadOnlyCollection<Audio> SearchAll( string query, out int totalCount, bool? autoComplete = null, AudioSort? sort = null, bool? findLyrics = null) { const int count = 300; var i = 0; var result = new List<Audio>(); do { var currentItems = _audio.Search(query, out totalCount, autoComplete, sort, findLyrics, count, i * count); if (currentItems != null) result.AddRange(currentItems); } while ((++i * count < (_vk.CountFromLastResponse ?? 0)) && (i * count < 1000)); return result.ToReadOnlyCollection(); }
public ReadOnlyCollection<Audio> Search( string query, out int totalCount, bool? autoComplete = null, AudioSort? sort = null, bool? findLyrics = null, int? count = null, int? offset = null) { if (string.IsNullOrEmpty(query)) throw new ArgumentException("Query is null or empty.", "query"); var parameters = new VkParameters { { "q", query }, { "auto_complete", autoComplete }, { "sort", sort }, { "lyrics", findLyrics }, { "count", count }, { "offset", offset } }; VkResponseArray response = _vk.Call("audio.search", parameters); totalCount = response[0]; return response.Skip(1).ToReadOnlyCollectionOf<Audio>(r => r); }
public ReadOnlyCollection<Audio> Search( string query, out long totalCount, bool? autoComplete = null, AudioSort? sort = null, bool? findLyrics = null, uint? count = null, uint? offset = null) { var parameters = new AudioSearchParams { Query = query, Autocomplete = autoComplete, Sort = sort, Lyrics = findLyrics, Count = Convert.ToInt32(count), Offset = offset }; return Search(parameters, out totalCount); }