public async Task<LastFmTrack> GetInfo(string title, string artist, bool autoCorrect = true, string mbid = null) { var parameters = new Dictionary<string, string>(); if (!string.IsNullOrEmpty(mbid)) parameters.Add("mbid", mbid); else { parameters.Add("artist", artist); parameters.Add("track", title); } if (autoCorrect) parameters.Add("autocorrect", "1"); parameters.Add("api_key", _lastFm.ApiKey); var response = await new CoreRequest(new Uri(LastFmConst.MethodBase + "track.getInfo"), parameters).Execute(); LastFmErrorProcessor.ProcessError(response); if (response["track"] != null) { return LastFmTrack.FromJson(response["track"]); } return null; }
public async Task<List<LastFmTrack>> Search(string track, string artist) { var parameters = new Dictionary<string, string>(); parameters.Add("track", track); if (!string.IsNullOrEmpty(artist)) parameters.Add("artist", artist); parameters.Add("api_key", _lastFm.ApiKey); var response = await new CoreRequest(new Uri(LastFmConst.MethodBase + "track.search"), parameters).Execute(); LastFmErrorProcessor.ProcessError(response); if (response.SelectToken("results.trackmatches.track") != null) { var trackJson = response.SelectToken("results.trackmatches.track"); if (trackJson is JArray) return (from t in response.SelectToken("results.trackmatches.track") select LastFmTrack.FromJson(t)).ToList(); else return new List<LastFmTrack>() { LastFmTrack.FromJson(trackJson) }; } return null; }