Exemple #1
0
 // Implementation of IDownloadProgressChangedCallback interface...
 public void Invoke(IDownloadJob downloadJob, IDownloadProgressChangedCallbackArgs callbackArgs)
 {
     // !!! warning this function is invoced from a different thread !!!
     agent.mDispatcher.Invoke(new Action(() => {
         agent.OnProgress(downloadJob.Updates.Count, callbackArgs.Progress.PercentComplete, callbackArgs.Progress.CurrentUpdateIndex + 1,
                          callbackArgs.Progress.CurrentUpdatePercentComplete, downloadJob.Updates[callbackArgs.Progress.CurrentUpdateIndex].Title);
     }));
 }
Exemple #2
0
 void IDownloadProgressChangedCallback.Invoke(IDownloadJob downloadJob, IDownloadProgressChangedCallbackArgs callbackArgs)
 {
     if (this.showProgress)
     {
         IDownloadProgress progress = callbackArgs.Progress;
         Console.WriteLine("WUA_DownloadingProgress:{0}|{1}|{2}",
                           progress.CurrentUpdateIndex + 1,
                           progress.CurrentUpdatePercentComplete,
                           progress.PercentComplete);
     }
 }
 void IDownloadProgressChangedCallback.Invoke(IDownloadJob downloadJob, IDownloadProgressChangedCallbackArgs callbackArgs)
 {
     if (this.showProgress)
     {
         IDownloadProgress progress = callbackArgs.Progress;
         Console.WriteLine("WUA_DownloadingProgress:{0}|{1}|{2}",
             progress.CurrentUpdateIndex + 1,
             progress.CurrentUpdatePercentComplete,
             progress.PercentComplete);
     }
 }
Exemple #4
0
 //Download Progress callback
 void IDownloadProgressChangedCallback.Invoke(IDownloadJob downloadJob, IDownloadProgressChangedCallbackArgs callbackArgs)
 {
     try
     {
         DebugLog($"Download progress: {callbackArgs.Progress.PercentComplete}%; " +
                  $"update {downloadJob.Updates[callbackArgs.Progress.CurrentUpdateIndex].Title}: {callbackArgs.Progress.CurrentUpdatePercentComplete}%");
         DebugLog(Dump(callbackArgs.Progress));
         ProgressChanged?.Invoke(callbackArgs.Progress.PercentComplete, downloadJob.Updates[callbackArgs.Progress.CurrentUpdateIndex].Title);
     }
     catch (Exception ex)
     {
         Log.Error("IDownloadProgressChangedCallback.Invoke", ex.ToString());
     }
 }
            // Implementation of IDownloadProgressChangedCallback interface...
            public void Invoke(IDownloadJob downloadJob, IDownloadProgressChangedCallbackArgs e)
            {
                decimal bDownloaded   = ((e.Progress.TotalBytesDownloaded / 1024) / 1024);
                decimal bToDownloaded = ((e.Progress.TotalBytesToDownload / 1024) / 1024);

                bDownloaded   = decimal.Round(bDownloaded, 2);
                bToDownloaded = decimal.Round(bToDownloaded, 2);
                form1.setTextBox1Notification("Downloading Update: "
                                              + e.Progress.CurrentUpdateIndex
                                              + "/"
                                              + downloadJob.Updates.Count
                                              + " - "
                                              + bDownloaded + "Mb"
                                              + " / "
                                              + bToDownloaded + "Mb");
            }
        /// <summary>
        /// Callback. Used by the windows update api when the download makes progress. Do not call this method.
        /// </summary>
        void Invoke(IDownloadJob downloadJob, IDownloadProgressChangedCallbackArgs callbackArgs)
        {
            bool doCallback = false;

            lock (JobLock)
            {
                if (Job != null && Job.InternalJobObject == downloadJob && !Job.IsCompleted)
                {
                    StateDesc  = downloadJob.Updates[callbackArgs.Progress.CurrentUpdateIndex].Title;
                    doCallback = true;
                }
            }
            if (doCallback) // calling the callback inside the lock can lead to deadlocks when the callback tries to dispose this object
            {
                OnProgress(downloadJob.Updates[callbackArgs.Progress.CurrentUpdateIndex], callbackArgs.Progress.CurrentUpdateIndex, downloadJob.Updates.Count, callbackArgs.Progress.PercentComplete);
            }
        }
Exemple #7
0
            // Implementation of IDownloadProgressChangedCallback interface...
            public void Invoke(IDownloadJob downloadJob,
                               IDownloadProgressChangedCallbackArgs e)
            {
                decimal downloaded   = ((e.Progress.TotalBytesDownloaded / 1024) / 1024);
                decimal toDownloaded = ((e.Progress.TotalBytesToDownload / 1024) / 1024);

                downloaded   = decimal.Round(downloaded, 2);
                toDownloaded = decimal.Round(toDownloaded, 2);

                form1.ShowProgressMessage("progress_download",
                                          "下载进度: "
                                          + e.Progress.CurrentUpdateIndex
                                          + "/"
                                          + downloadJob.Updates.Count
                                          + " - "
                                          + downloaded + "Mb"
                                          + " / "
                                          + toDownloaded + "Mb");
            }
 public void Invoke(IDownloadJob downloadJob, IDownloadProgressChangedCallbackArgs callbackArgs)
 {
     ServiceEventSource.Current.VerboseMessage("Callback: Downloading of Windows Updates is In-Progress. Percent completed : " + downloadJob.GetProgress().PercentComplete);
 }
Exemple #9
0
            // Implementation of IDownloadProgressChangedCallback interface...
            public void Invoke(IDownloadJob downloadJob,
                IDownloadProgressChangedCallbackArgs e)
            {
                decimal downloaded = ((e.Progress.TotalBytesDownloaded / 1024) / 1024);
                decimal toDownloaded = ((e.Progress.TotalBytesToDownload / 1024) / 1024);
                downloaded = decimal.Round(downloaded, 2);
                toDownloaded = decimal.Round(toDownloaded, 2);

                form1.ShowProgressMessage("progress_download",
                    "下载进度: "
                 + e.Progress.CurrentUpdateIndex
                 + "/"
                 + downloadJob.Updates.Count
                 + " - "
                 + downloaded + "Mb"
                 + " / "
                 + toDownloaded + "Mb");
            }
Exemple #10
0
 public void Invoke(IDownloadJob downloadJob, IDownloadProgressChangedCallbackArgs callbackArgs)
 {
     this.Progress = callbackArgs.Progress;
 }
            public void Invoke(IDownloadJob downloadJob, IDownloadProgressChangedCallbackArgs callbackArgs)
            {
                var clearProgressFlag = false;
                try
                {
                    if (_updateInProgress) return;

                    _updateInProgress = true;
                    clearProgressFlag = true;
                    var wrapper = new UpdateWrapper(downloadJob, callbackArgs);
                    wrapper.AdjustValues(_lastWrapper);
                    _lastWrapper = wrapper;
                    SetTitle(wrapper);
                    SetText(wrapper);
                }
                catch (Exception e)
                {
                    Log.WarnFormat("An issue occurred while handling a download updates progress changed event: {0}", e);
                }
                finally
                {
                    if (clearProgressFlag) _updateInProgress = false;
                }
            }
 public UpdateWrapper(IDownloadJob job, IDownloadProgressChangedCallbackArgs args)
 {
     TotalUpdates = job.Updates.Count;
     TotalPercent = args.Progress.PercentComplete;
     CurrentIndex = args.Progress.CurrentUpdateIndex+1;
     Title = job.Updates[args.Progress.CurrentUpdateIndex].Title;
     UpdatePercent = args.Progress.CurrentUpdatePercentComplete;
 }
 public void Invoke(IDownloadJob downloadJob, IDownloadProgressChangedCallbackArgs callbackArgs) => _state.Invoke(downloadJob, callbackArgs);
 public void Invoke(IDownloadJob downloadJob, IDownloadProgressChangedCallbackArgs callbackArgs) => Action?.Invoke(callbackArgs.Progress);
 public void Invoke(IDownloadJob downloadJob, IDownloadProgressChangedCallbackArgs e)
 {
     WindowsUpdateFrame.progressWindow.Dispatcher.BeginInvoke(new Action(() => WindowsUpdateFrame.progressWindow.progressBar1.Value = e.Progress.PercentComplete));
     WindowsUpdateFrame.progressWindow.Dispatcher.BeginInvoke(new Action(() => WindowsUpdateFrame.progressWindow.textBlock1.Text    = e.Progress.PercentComplete.ToString() + "%"));
 }