public void Invoke(IDownloadJob downloadJob, IDownloadCompletedCallbackArgs callbackArgs) { WindowsUpdateFrame.progressWindow.Dispatcher.BeginInvoke(new Action(() => WindowsUpdateFrame.progressWindow.Close())); WindowsUpdateFrame.updateDownloader.EndDownload(WindowsUpdateFrame.downloadJob); WindowsUpdateFrame.downloadJob = null; WindowsUpdateFrame.Dispatcher.BeginInvoke(new Action(() => WindowsUpdateFrame.BeginInstallation())); }
// Implementation of IDownloadCompletedCallback interface... public void Invoke(IDownloadJob downloadJob, IDownloadCompletedCallbackArgs callbackArgs) { // !!! warning this function is invoced from a different thread !!! agent.mDispatcher.Invoke(new Action(() => { agent.OnUpdatesDownloaded(downloadJob, downloadJob.AsyncState); })); }
/// <summary> /// Callback. Used by the windows update api when the download completes. Do not call this method. /// </summary> void Invoke(IDownloadJob downloadJob, IDownloadCompletedCallbackArgs callbackArgs) { bool doCallback = false; lock (JobLock) { if (Job != null && Job.InternalJobObject == downloadJob && Job.IsCompleted) { StopTimeoutTimer(); doCallback = true; } } // calling the callback inside the lock can lead to deadlocks when the callback tries to dispose this object if (doCallback) { _completedCallback(_uDownloader.EndDownload(DownloadJob), _uDownloader.Updates); } }
//Downlaod Complete callback void IDownloadCompletedCallback.Invoke(IDownloadJob downloadJob, IDownloadCompletedCallbackArgs callbackArgs) { try { var downloadResult = updateDownloader.EndDownload(downloadJob); //todo could downloads partially fail: the result above not success, but still some updates available for install? if (downloadResult.ResultCode != OperationResultCode.orcSucceeded && downloadResult.ResultCode != OperationResultCode.orcSucceededWithErrors) { DebugLog($"Download failed with code: {downloadResult.ResultCode}"); //return; DownloadCompleted?.Invoke(false); } else { //ReadyToInstall?.Invoke(); DownloadCompleted?.Invoke(true); } for (int i = 0; i < downloadJob.Updates.Count; i++) { var resultCode = downloadResult.GetUpdateResult(i).ResultCode; var title = downloadJob.Updates[i].Title; if (resultCode != OperationResultCode.orcSucceeded) { //the title must be there //but if it it not for some reason we will detect this (via dict. exception) updateResults[title].Error = resultCode.ToString(); updateResults[title].IsInstalled = false; } DebugLog($"Download status for update {title}: {resultCode}"); } } catch (Exception ex) { DownloadCompleted?.Invoke(false); Log.Error("IDownloadCompletedCallback.Invoke", ex.ToString()); } }
// Implementation of IDownloadCompletedCallback interface... public void Invoke(IDownloadJob downloadJob, IDownloadCompletedCallbackArgs e) { form1.iDownloadComplete(); }
public void Invoke(IDownloadJob downloadJob, IDownloadCompletedCallbackArgs callbackArgs) { DownloadJob = downloadJob; DownloadResult = Downloader?.EndDownload(DownloadJob); }
public void Invoke(IDownloadJob downloadJob, IDownloadCompletedCallbackArgs callbackArgs) { _reporter?.Report(downloadJob.GetProgress()); }
public void Invoke(IDownloadJob downloadJob, IDownloadCompletedCallbackArgs callbackArgs) { this.CompleteTask(); ServiceEventSource.Current.VerboseMessage("Callback: Downloading of Windows Updates completed."); }
// Implementation of IDownloadCompletedCallback interface... public void Invoke(IDownloadJob downloadJob, IDownloadCompletedCallbackArgs e) { form1.DownloadComplete(); }
public void Invoke(IDownloadJob downloadJob, IDownloadCompletedCallbackArgs callbackArgs) { var clearProgressFlag = false; try { if (_updateInProgress) return; _updateInProgress = true; clearProgressFlag = true; var wrapper = new UpdateWrapper(downloadJob) { TotalPercent = 100, UpdatePercent = 100, CurrentIndex = downloadJob.Updates.Count}; wrapper.AdjustValues(_lastWrapper); _lastWrapper = wrapper; SetTitle(wrapper); SetText(wrapper); } catch (Exception e) { Log.WarnFormat("An issue occurred while An issue occurred while handling a download updates progress completed event: {0}", e); } finally { if (clearProgressFlag) _updateInProgress = false; } }
void IDownloadCompletedCallback.Invoke(IDownloadJob downloadJob, IDownloadCompletedCallbackArgs callbackArgs) { }
public void Invoke(IDownloadJob downloadJob, IDownloadCompletedCallbackArgs callbackArgs) => _state.Invoke(downloadJob, callbackArgs);