示例#1
0
 public static void SavePlaylist(PlaylistRawData playlistData)
 {
   IContentDirectory contentDirectory = GetContentDirectoryService();
   contentDirectory.SavePlaylist(playlistData);
 }
 public static void SavePlaylist(PlaylistRawData playlistData)
 {
   IWorkflowManager workflowManager = ServiceRegistration.Get<IWorkflowManager>();
   if (ContainsLocalMediaItems(playlistData))
     SaveFailed(Consts.RES_SAVE_PLAYLIST_FAILED_LOCAL_MEDIAITEMS_TEXT);
   else
     workflowManager.NavigatePush(Consts.WF_STATE_ID_PLAYLIST_SAVE_EDIT_NAME, new NavigationContextConfig
       {
           AdditionalContextVariables = new Dictionary<string, object>
             {
                 {Consts.KEY_PLAYLIST_DATA, playlistData}
             }
       });
 }
 protected static bool ContainsLocalMediaItems(PlaylistRawData playlistData)
 {
   return playlistData.MediaItemIds.Any(mediaItemId => mediaItemId == Guid.Empty);
 }
 public static void SaveCurrentPlaylist()
 {
   IPlayerContextManager pcm = ServiceRegistration.Get<IPlayerContextManager>();
   IPlayerContext pc = pcm.GetPlayerContext(PlayerChoice.CurrentPlayer);
   IPlaylist playlist = pc == null ? null : pc.Playlist;
   if (playlist == null)
   {
     ServiceRegistration.Get<ILogger>().Warn("ManagePlaylistsModel: No playlist available to save");
     return;
   }
   PlaylistRawData playlistData = new PlaylistRawData(Guid.NewGuid(), string.Empty, ConvertAVTypeToPlaylistType(pc.AVType));
   playlist.ExportPlaylistRawData(playlistData);
   SavePlaylist(playlistData);
 }
示例#5
0
 public void ExportPlaylistRawData(PlaylistRawData data)
 {
   IList<Guid> idList = data.MediaItemIds;
   idList.Clear();
   lock (_syncObj)
     CollectionUtils.AddAll(idList, _itemList.Select(item => item.MediaItemId));
 }
 public void SavePlaylist(PlaylistRawData playlistData)
 {
   CpAction action = GetAction("SavePlaylist");
   IList<object> inParameters = new List<object> {playlistData};
   action.InvokeAction(inParameters);
 }
示例#7
0
    public void SavePlaylist(PlaylistRawData playlistData)
    {
      ISQLDatabase database = ServiceRegistration.Get<ISQLDatabase>();
      ITransaction transaction = database.BeginTransaction();
      Guid playlistId = playlistData.PlaylistId;
      try
      {
        // Playlist contents are automatically deleted (ON DELETE CASCADE)
        using (IDbCommand command = MediaLibrary_SubSchema.DeletePlaylistCommand(transaction, playlistId))
          command.ExecuteNonQuery();

        using (IDbCommand command = MediaLibrary_SubSchema.InsertPlaylistCommand(transaction, playlistId, playlistData.Name, playlistData.PlaylistType))
          command.ExecuteNonQuery();

        // Add media items
        int ct = 0;
        foreach (Guid mediaItemId in playlistData.MediaItemIds)
          using (IDbCommand command = MediaLibrary_SubSchema.AddMediaItemToPlaylistCommand(transaction, playlistId, ct++, mediaItemId))
            command.ExecuteNonQuery();
        transaction.Commit();
        ContentDirectoryMessaging.SendPlaylistsChangedMessage();
      }
      catch (Exception e)
      {
        ServiceRegistration.Get<ILogger>().Error("MediaLibrary: Error adding playlist '{0}' (id '{1}')", e, playlistData.Name, playlistId);
        transaction.Rollback();
        throw;
      }
    }
 protected void RunImportOperationAsync(IContentDirectory cd, IList<string> mediaFiles)
 {
   ILogger logger = ServiceRegistration.Get<ILogger>();
   _importPlaylistOperation = new ImportPlaylistOperation();
   IList<Guid> items = _importPlaylistOperation.Execute(mediaFiles, GetShareLocation());
   if (items == null)
   {
     logger.Info("PlaylistImportModel: Playlist import cancelled");
     return;
   }
   IDialogManager dialogManager = ServiceRegistration.Get<IDialogManager>();
   if (items.Count == 0)
   {
     dialogManager.ShowDialog(Consts.RES_PLAYLIST_SAVE_FAILED_TITLE,
         Consts.RES_NO_ITEMS_WERE_IMPORTED_SKIPPING_SAVE_TEXT, DialogType.OkDialog, false, DialogButtonType.Ok);
     return;
   }
   string playlistName = PlaylistName;
   PlaylistRawData playlistRawData = new PlaylistRawData(Guid.NewGuid(), playlistName, ManagePlaylistsModel.ConvertAVTypeToPlaylistType(AVType.Audio), items);
   try
   {
     cd.SavePlaylist(playlistRawData);
     dialogManager.ShowDialog(Consts.RES_PLAYLIST_SAVED_SUCCESSFULLY_TITLE,
         LocalizationHelper.Translate(Consts.RES_PLAYLIST_SAVED_SUCCESSFULLY_TEXT, playlistName), DialogType.OkDialog, false, DialogButtonType.Ok);
   }
   catch (Exception e)
   {
     dialogManager.ShowDialog(Consts.RES_PLAYLIST_SAVE_FAILED_TITLE, e.Message, DialogType.OkDialog, false, DialogButtonType.Ok);
   }
   _importPlaylistOperation = null;
 }