public MainPageViewModel()
 {
     Files                  = new ObservableCollection <BlobTransferUtility.Model.File>();
     Blobs                  = new ObservableCollection <BlobTransferUtility.Model.Blob>();
     WorkerManager          = new WorkerManager();
     WorkerManager.OnError += OnErrorHandler;
 }
        private void OnCancelWorkerCommand(object param)
        {
            var selectedItems = ((IList)param).OfType <object>().ToList();

            lock (WorkerManager.Workers)
            {
                foreach (Worker worker in selectedItems)
                {
                    WorkerManager.CancelWorker(worker);
                }
            }
        }
        private void OnEnqueueWorkerCommand(object param)
        {
            var selectedItems = ((IList)param).OfType <object>().ToList();

            lock (WorkerManager.Queue)
            {
                lock (WorkerManager.Workers)
                {
                    foreach (Worker worker in selectedItems)
                    {
                        WorkerManager.CancelWorker(worker);
                        WorkerManager.Queue.Add(worker.BlobJob);
                    }
                }
            }
        }