public RetCodes SearchForUpdates(bool Download, bool IncludePotentiallySupersededUpdates = false) { if (mCallback != null) { return(RetCodes.Busy); } mUpdateSearcher.IncludePotentiallySupersededUpdates = IncludePotentiallySupersededUpdates; if (Download) { mCurOperation = AgentOperation.PreparingCheck; OnProgress(-1, 0, 0, 0); AppLog.Line("downloading wsusscn2.cab"); List <UpdateDownloader.Task> downloads = new List <UpdateDownloader.Task>(); UpdateDownloader.Task download = new UpdateDownloader.Task(); download.Url = Program.IniReadValue("Options", "OfflineCab", "http://go.microsoft.com/fwlink/p/?LinkID=74689"); download.Path = dlPath; download.FileName = "wsusscn2.cab"; downloads.Add(download); if (!mUpdateDownloader.Download(downloads)) { OnFinished(RetCodes.DownloadFailed); return(RetCodes.DownloadFailed); } return(RetCodes.InProgress); } RetCodes ret = SetupOffline(); if (ret < 0) { return(ret); } return(SearchForUpdates()); }
public RetCodes DownloadUpdatesManually(List <MsUpdate> Updates, bool Install = false) { if (mUpdateDownloader.IsBusy()) { return(RetCodes.Busy); } mCurOperation = Install ? AgentOperation.PreparingUpdates : AgentOperation.DownloadingUpdates; OnProgress(-1, 0, 0, 0); List <UpdateDownloader.Task> downloads = new List <UpdateDownloader.Task>(); foreach (MsUpdate Update in Updates) { if (Update.Downloads.Count == 0) { AppLog.Line("Error: No Download Url's found for update {0}", Update.Title); continue; } foreach (string url in Update.Downloads) { UpdateDownloader.Task download = new UpdateDownloader.Task(); download.Url = url; download.Path = dlPath + @"\" + Update.KB; download.KB = Update.KB; downloads.Add(download); } } if (!mUpdateDownloader.Download(downloads, Updates)) { OnFinished(RetCodes.DownloadFailed); return(RetCodes.DownloadFailed); } return(RetCodes.InProgress); }