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);
 }