public ITracksSearcher BeginSearch(SCFilter filter, bool useNewApi = true)
        {
            Func <Dictionary <string, object>, SCTrack[]> search;

            if (useNewApi)
            {
                search = parameters =>
                {
                    var tracks = soundCloudRawClient.Request <TrackCollection>(searchPrefix, searchCommand, HttpMethod.Get, parameters, responseType: string.Empty, domain: Internal.Client.Helpers.Domain.ApiV2);
                    return(tracks.Tracks.Select(trackConverter.Convert).ToArray());
                };
            }
            else
            {
                search = parameters =>
                {
                    var tracks = soundCloudRawClient.Request <Track[]>(prefix, string.Empty, HttpMethod.Get, parameters);
                    return(tracks.Select(trackConverter.Convert).ToArray());
                };
            }
            return(new TracksSearcher(filter,
                                      useNewApi,
                                      paginationValidator,
                                      search));
        }
Beispiel #2
0
        public ITracksSearcher BeginSearch(SCFilter filter, SCApiVersion version)
        {
            var internalTracksSearch = searchParametersBuilder.BuildGetter(version, soundCloudRawClient);
            Func <Dictionary <string, object>, SCTrack[]> publicTracksSearch = parameters => internalTracksSearch(parameters).Select(trackConverter.Convert).ToArray();

            return(new TracksSearcher(filter,
                                      paginationValidator,
                                      publicTracksSearch));
        }
 public ITracksSearcher BeginSearch(SCFilter filter)
 {
     return new TracksSearcher(filter, 
                               paginationValidator,
                               parameters =>
                               {
                                   var tracks = soundCloudRawClient.Request<Track[]>(prefix, string.Empty, HttpMethod.Get, parameters);
                                   return tracks.Select(trackConverter.Convert).ToArray();
                               });
 }
Beispiel #4
0
 public ITracksSearcher BeginSearch(SCFilter filter)
 {
     return(new TracksSearcher(filter,
                               paginationValidator,
                               parameters =>
     {
         var tracks = soundCloudRawClient.Request <Track[]>(prefix, string.Empty, HttpMethod.Get, parameters);
         return tracks.Select(trackConverter.Convert).ToArray();
     }));
 }
        internal TracksSearcher(SCFilter filter, IPaginationValidator paginationValidator, Func<Dictionary<string, object>, SCTrack[]> search)
        {
            if (filter == SCFilter.Private)
            {
                throw new ArgumentException("Can't search private tracks", "filter");
            }

            this.filter = filter;
            this.paginationValidator = paginationValidator;
            this.search = search;

            searchParameters = new Dictionary<string, object> ();
            Reset();
        }
        internal TracksSearcher(SCFilter filter, IPaginationValidator paginationValidator, Func <Dictionary <string, object>, SCTrack[]> search)
        {
            if (filter == SCFilter.Private)
            {
                throw new ArgumentException("Can't search private tracks", "filter");
            }

            this.filter = filter;
            this.paginationValidator = paginationValidator;
            this.search = search;

            searchParameters = new Dictionary <string, object> ();
            Reset();
        }
 public ITracksSearcher BeginSearch(SCFilter filter, bool useNewApi = true)
 {
     Func<Dictionary<string, object>, SCTrack[]> search;
     if (useNewApi)
     {
         search = parameters =>
         {
             var tracks = soundCloudRawClient.Request<TrackCollection>(searchPrefix, searchCommand, HttpMethod.Get, parameters, responseType: string.Empty, domain: Internal.Client.Helpers.Domain.ApiV2);
             return tracks.Tracks.Select(trackConverter.Convert).ToArray();
         };
     }
     else
     {
         search = parameters =>
         {
             var tracks = soundCloudRawClient.Request<Track[]>(prefix, string.Empty, HttpMethod.Get, parameters);
             return tracks.Select(trackConverter.Convert).ToArray();
         };
     }
     return new TracksSearcher(filter, 
                               useNewApi,
                               paginationValidator,
                               search);
 }
 public void TestSearchByFilter(SCFilter filter)
 {
     TestCollection((o, c) => tracksApi.BeginSearch(filter, false).Exec(SCOrder.CreatedAt, o, c), 0, 50);
 }
 public void TestSearchByFilter(SCFilter filter)
 {
     TestCollection((o,c) =>tracksApi.BeginSearch(filter, false).Exec(SCOrder.CreatedAt, o, c), 0 ,50);
 }