protected virtual UriQuery GetUriQuery() { UriQuery query = new UriQuery(BaseUrl); query.Add("api_key", ApiKey); query.Add("format", "json"); if (!string.IsNullOrEmpty(Type)) { query.Add("type", Type); } if (ArtistID.Count() > 0) { foreach (Term artistId in ArtistID) { query.Add("artist_id", artistId); } } if (Artist.Count() > 0) { foreach (Term artist in Artist) { query.Add("artist", artist); } } if (SongID.Count() > 0) { foreach (Term songId in SongID) { query.Add("song_id", songId); } } if (TrackID.Count() > 0) { foreach (Term trackId in TrackID) { query.Add("track_id", trackId); } } if (Results.HasValue) { query.Add("results", Results.Value); } if (Bucket.HasValue) { foreach (string bucket in Bucket.Value.GetBucketDescriptions()) { query.Add("bucket", bucket); } } if (Limit.HasValue) { query.Add("limit", Limit.Value.ToString().ToLower()); } if (Dmca.HasValue) { query.Add("dmca", Dmca.Value.ToString().ToLower()); } return(query); }