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)); }