public async Task <DiscogsRelease> GetReleaseByTitle(string releaseTitle, string trackName, CancellationToken token) { var releaseId = 0; DiscogsRelease release = null; var searchParameters = new DiscogsSearchParameters() { query = releaseTitle, type = DiscogsSearchObjectType.release }; var discogsSearchResults = await DiscogsSearch(searchParameters, token); var results = discogsSearchResults.ToList(); foreach (var result in results) { //TODO: Add check for master releases release = GetReleaseById(result.id, token).Result; var tracks = release.tracklist; if (tracks.Any(arg => arg.title.Equals(trackName, StringComparison.InvariantCultureIgnoreCase))) { releaseId = release.id; break; } } return(releaseId == 0 ? null : release); }
public async Task <IEnumerable <DiscogsSearchResult> > DiscogsSearch(DiscogsSearchParameters arg, CancellationToken token) { var prm = arg.GetSearchString(); var request = new RestRequest(prm); var response = await ExecuteRequest <DiscogsSearchResults>(request, token); return(response.GetData()); }
public async Task <DiscogsArtist> GetArtistByName(string artistName, CancellationToken token) { var searchParameters = new DiscogsSearchParameters() { query = artistName, type = DiscogsSearchObjectType.artist }; var results = await DiscogsSearch(searchParameters, token); var firstResult = results.FirstOrDefault(); if (firstResult == null) { return(null); } return(await GetArtistById(firstResult.id, token)); }