Example #1
0
 public Task OnQueueUpdate(QueueUpdate update)
 {
     if (update.Item == null)
     {
         // ディレクトリに対する操作
         if (update.Type == UpdateType.Add)
         {
             QueueItems.Add(new DisplayQueueDirectory(update.Directory));
         }
         else
         {
             var dir = QueueItems.FirstOrDefault(d => d.Path == update.DirPath);
             if (dir != null)
             {
                 if (update.Type == UpdateType.Remove)
                 {
                     QueueItems.Remove(dir);
                 }
                 else
                 {
                     QueueItems[QueueItems.IndexOf(dir)] = new DisplayQueueDirectory(update.Directory);
                 }
             }
         }
     }
     else
     {
         // ファイルに対する操作
         var dir = QueueItems.FirstOrDefault(d => d.Path == update.DirPath);
         if (dir != null)
         {
             if (update.Type == UpdateType.Add)
             {
                 dir.Items.Add(update.Item);
             }
             else
             {
                 var file = dir.Items.FirstOrDefault(f => f.Path == update.Item.Path);
                 if (file != null)
                 {
                     if (update.Type == UpdateType.Remove)
                     {
                         dir.Items.Remove(file);
                     }
                     else // Update
                     {
                         dir.Items[dir.Items.IndexOf(file)] = update.Item;
                     }
                 }
             }
         }
     }
     return(Task.FromResult(0));
 }
Example #2
0
 public void RemoveQueueItem(QueueItem queueItem)
 {
     QueueItems.Remove(queueItem);
     queueItem.Playable.IsQueued = false;
 }