Exemplo n.º 1
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 Func <Dictionary <string, object>, Track[]> BuildGetter(SCApiVersion version, ISoundCloudRawClient soundCloudRawClient)
        {
            var searchParametersBuilder = searchParametersBuilders.SingleOrDefault(x => x.Version == version);

            if (searchParametersBuilder == null)
            {
                throw new NotSupportedException(string.Format("Search for version {0} not supported", version));
            }

            return(searchParametersBuilder.BuildGetter(soundCloudRawClient));
        }