コード例 #1
0
        public SCTrack[] GetContributions(int offset, int limit)
        {
            paginationValidator.Validate(offset, limit);
            var tracks = soundCloudRawClient.Request <Track[]>(prefix, "contributions", HttpMethod.Get, new Dictionary <string, object>().SetPagination(offset, limit), responseType: null);

            return(tracks.Select(trackConverter.Convert).ToArray());
        }
コード例 #2
0
 public SCTrack[] Exec(SCOrder order, int offset, int limit)
 {
     paginationValidator.Validate(offset, limit);
     searchParameters.SetPagination(offset, limit);
     searchParameters.AddOrUpdate("order", order.GetParameterName());
     return(search(searchParameters));
 }
コード例 #3
0
 internal static TCollection GetCollectionBatch <TCollection, TResponse>(
     this ISoundCloudRawClient soundCloudRawClient, IPaginationValidator paginationValidator, string prefix, string command, int offset, int limit)
     where TCollection : class, IEntityCollection <TResponse>
 {
     paginationValidator.Validate(offset, limit);
     return(soundCloudRawClient.Request <TCollection>(prefix, command, HttpMethod.Get, new Dictionary <string, object>().SetPagination(offset, limit)));
 }
コード例 #4
0
        public SCTrack[] GetTracks(SCExploreCategory category, int offset = 0, int limit = 10)
        {
            paginationValidator.Validate(offset, limit);

            var parameters = new Dictionary <string, object>();

            var tracks = soundCloudRawClient.Request <ExploreTrackList>(prefix, category.Name, HttpMethod.Get, parameters: parameters.SetPagination(offset, limit), domain: Internal.Client.Helpers.Domain.ApiV2, responseType: string.Empty);

            return(tracks.Tracks.Select(trackConverter.Convert).ToArray());
        }
コード例 #5
0
        public SCGroup[] Search(string query, int offset = 0, int limit = 50)
        {
            paginationValidator.Validate(offset, limit);

            var parameters = new Dictionary <string, object>();

            if (!string.IsNullOrEmpty(query))
            {
                parameters.Add("q", query);
            }

            var groups = soundCloudRawClient.Request <Group[]>(prefix, string.Empty, HttpMethod.Get, parameters.SetPagination(offset, limit));

            return(groups.Select(groupConverter.Convert).ToArray());
        }
コード例 #6
0
        public SCTrack[] GetTracks(SCExploreCategory category, int offset = 0, int limit = 10)
        {
            paginationValidator.Validate(offset, limit);

            var parameters = new Dictionary <string, object>();

            parameters.Add("kind", "top");

            //Build genre paramter
            var processed = (category == null || category.Name == "Popular+Music") ? "all-music" : new String(System.Uri.UnescapeDataString(category.Name).Where(ch => Char.IsLetterOrDigit(ch)).ToArray()).ToLower();
            var g         = string.Format("soundcloud%3Agenres%3A{0}", processed);

            parameters.Add("genre", g);
            parameters.Add("linked_partitioning", 1);

            var tracks = soundCloudRawClient.Request <ChartTrackList>(prefix, command, HttpMethod.Get, parameters: parameters.SetPagination(offset, limit), domain: Internal.Client.Helpers.Domain.ApiV2, responseType: string.Empty);

            return(tracks.Tracks.Select(ct => trackConverter.Convert(ct.Track)).ToArray());
        }
コード例 #7
0
        public SCTrack[] GetTracks(SCExploreCategory category, int offset = 0, int limit = 10)
        {
            paginationValidator.Validate(offset, limit);

            var parameters = new Dictionary <string, object> {
                { "kind", "top" }
            };

            var categoryName = category.GetName();

            var processed = categoryName == null || categoryName == "Popular+Music"
                ? "all-music"
                : new string(Uri.UnescapeDataString(categoryName).Where(char.IsLetterOrDigit).ToArray()).ToLower();
            var genreFormatQuery = $"soundcloud%3Agenres%3A{processed}";

            parameters.Add("genre", genreFormatQuery);
            parameters.Add("linked_partitioning", 1);

            var tracks = soundCloudRawClient.Request <ChartTrackCollection>(prefix, command, HttpMethod.Get, parameters: parameters.SetPagination(offset, limit), domain: Internal.Client.Helpers.Domain.ApiV2, responseType: string.Empty);

            return(tracks.Collection.Select(ct => trackConverter.Convert(ct.Track)).ToArray());
        }