public EnumJobs ( JobOwner jobOwner = JobOwner.CurrentUser ) : void | ||
jobOwner | JobOwner | The job owner. |
리턴 | void |
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); } } }
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); }
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(); } }