EnumJobs() public method

Enumerates the collection of BitsJob, it also completes any job that has finished.
public EnumJobs ( JobOwner jobOwner = JobOwner.CurrentUser ) : void
jobOwner JobOwner The job owner.
return void
Beispiel #1
0
        public void JobTransferred(IBackgroundCopyJob pJob)
        {
            BitsJob job;

            if (null != this.onJobTransfered)
            {
                Guid guid;
                pJob.GetId(out guid);
                if (manager.Jobs.ContainsKey(guid))
                {
                    job = manager.Jobs[guid];
                }
                else
                {
                    // Update Joblist to check whether the job still exists. If not, just return
                    manager.EnumJobs(manager.currentOwner);
                    if (manager.Jobs.ContainsKey(guid))
                    {
                        job = manager.Jobs[guid];
                    }
                    else
                    {
                        return;
                    }
                }
                this.onJobTransfered(this, new NotificationEventArgs(job));
                //forward event
                if (job.notificationTarget != null)
                {
                    job.notificationTarget.JobTransferred(pJob);
                }
            }
        }
Beispiel #2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            _manager = new BitsManager();
            _manager.EnumJobs(JobOwner.CurrentUser);

            foreach (var job in _manager.Jobs.Values)
                listBox1.Items.Add(job.DisplayName);
        }
Beispiel #3
0
        private void Form1_Load(object sender, EventArgs e)
        {
            if (!Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Downloads"))
                Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Downloads");

            _downloadManager = new BitsManager();
            _downloadManager.OnJobModified += downloadManager_OnJobModified;
            _downloadManager.OnJobTransferred += downloadManager_OnJobTransferred;
            _downloadManager.EnumJobs(JobOwner.CurrentUser);

            foreach (var job in _downloadManager.Jobs.Values)
            {
                if (job.State == JobState.Transferred)
                    job.Complete();
                else
                    AddJobFlags(job);
            }

            _colIDs = new ColumnIDs(dataGridView1);

            dataGridView1.Rows.AddRange(GetDownloadJobsAsRows().ToArray());
        }
 private static bool CheckRunningJob(BitsManager bitsManager) {
     if (Settings.Instance.BitsJobId.HasValue) {
         BitsJob runningJob;
         if (bitsManager.EnumJobs().TryGetValue(Settings.Instance.BitsJobId.Value, out runningJob)) {
             if (runningJob.State == JobState.Transferred) {
                 _logger.Debug("Download completed");
                 Settings.Instance.BitsJobId = null;
                 Settings.Instance.Save();
                 runningJob.Complete();
             } else if (runningJob.State == JobState.Error) {
                 var error = runningJob.Error;
                 _logger.Error($"Download of {error.File.RemoteName} failed: {error.Description}\n{error.ContextDescription}");
                 Settings.Instance.BitsJobId = null;
                 Settings.Instance.Save();
                 runningJob.Cancel();
             } else if (runningJob.State == JobState.TransientError) {
                 var error = runningJob.Error;
                 _logger.Warn("Download of {0} is failing: {1}\n{2}", error.File.RemoteName, error.Description,
                     error.ContextDescription);
             } else if (runningJob.State == JobState.Transferring) {
                 var progress = runningJob.Progress;
                 _logger.Debug(
                     $"Download is in progress (files {progress.FilesTransferred} of {progress.FilesTotal}, bytes {progress.BytesTransferred} of {progress.BytesTotal})");
             }
             return true;
         } else {
             Settings.Instance.BitsJobId = null;
             Settings.Instance.Save();
         }
     }
     return false;
 }
 public static void CancelRunningJob() {
     if (Settings.Instance.BitsJobId.HasValue) {
         using (var bitsManager = new BitsManager()) {
             BitsJob runningJob;
             if (bitsManager.EnumJobs().TryGetValue(Settings.Instance.BitsJobId.Value, out runningJob)) {
                 runningJob.Cancel();
             }
         }
         Settings.Instance.BitsJobId = null;
         Settings.Instance.Save();
     }
 }