protected static JsonParam GetMediaItemParam(XbmcItemBase mediaItem) { JsonParam param; if (mediaItem is Song) { param = new JsonParam("songid", ((Song) mediaItem).Id); } else if (mediaItem is Artist) { param = new JsonParam("artistid", ((Artist) mediaItem).Id); } else if (mediaItem is Album) { param = new JsonParam("albumid", ((Album) mediaItem).Id); } else if (mediaItem is File) { File file = (File) mediaItem; string idName = file.FileType == FileType.File ? "file" : "directory"; param = new JsonParam(idName, file.Name); } else { throw new ArgumentOutOfRangeException("mediaItem", String.Format("MediaItemType [{0}] is unknown.", mediaItem.GetType().FullName)); } return new JsonParamObject("item", param); }
/// <summary> /// Add playlist Item /// </summary> public async Task Add(Playlist playlist, XbmcItemBase item) { JsonParam itemParam = GetMediaItemParam(item); await _client.PostWithoutResultAsync("Playlist.Add", new JsonParam("playlistid", playlist.Id), itemParam); }