/// <summary> /// Retrieve details about a specific artist /// </summary> public async Task<Artist> GetArtist(int artistId, ArtistFields fields) { return await _client.PostAsync("AudioLibrary.GetArtistDetails", t => _serializer.Parse<Artist>(t, "artistdetails"), new JsonParam("artistid", artistId), new JsonParam("properties", fields ?? DefaultArtistProperties)); }
/// <summary> /// Retrieve all artists /// </summary> /// <param name="albumArtistsOnly">Whether or not to include artists only appearing in compilations. If the parameter is not passed or is passed as null the GUI setting will be used</param> public async Task<IMediaItemList<Artist>> GetArtists(bool? albumArtistsOnly, int? genreId, ArtistFields fields, int? startIndex, int? endIndex, SortMethods? sortMethod, Orders? order) { List<JsonParam> parameters = new List<JsonParam>(); parameters.AddRange(ClientUtils.GetOptionalParameter(genreId, "genreid")); parameters.AddRange(ClientUtils.GetOptionalParameter(albumArtistsOnly, "albumartistsonly")); parameters.AddRange(ClientUtils.GetLimitsParameter(startIndex, endIndex)); parameters.Add(new JsonParam("properties", fields ?? DefaultArtistProperties)); parameters.AddRange(ClientUtils.GetLimitsParameter(startIndex, endIndex)); parameters.AddRange(ClientUtils.GetSortOrderParameter(sortMethod, order)); return await _client.PostAsync("AudioLibrary.GetArtists", t => _serializer.Parse<XbmcItemList<Artist>>(t), parameters.ToArray()); }