private void ProcessMaps() { countryMaps = new Dictionary <string, List <Tuple <string, string, string, string> > >(); foreach (var item in countryMapsUrlHash) { service.Navigate(item.Item2); var elements = service.GetElementsXPath(@"//*[@id='content-core']/div[2]/table/tbody/tr[position() > 1]"); var listMaps = new List <Tuple <string, string, string, string> >(); foreach (var trow in elements) { var tdataList = trow.FindElements(By.XPath(@"td")); var jpegHref = tdataList[4].FindElement(By.XPath(@".//a")).GetAttribute("href"); var fullJpegUrl = UriEx.Full(item.Item2, jpegHref); var download = new HttpDownloadFile(fullRootWfDirectory); download.Download(fullJpegUrl, true, ImageFormat.Jpeg); var maps = new Tuple <string, string, string, string>( tdataList[0].Text, tdataList[1].Text, fullJpegUrl, download.LocalFile ); listMaps.Add(maps); } countryMaps.Add(item.Item1, listMaps); } }
private void OnRunningChanged(HttpDownloadFile obj) { Common.RunInUI(() => { if (obj.IsRunning) { IsShowProgressBar = true; } IsDoUpgradeEnable = !obj.IsRunning; DoUpgradeCommand.RaiseCanExecuteChanged(); }); }
private void OnDownloadFinished(HttpDownloadFile obj) { Common.RunInUI(() => { if (obj.IsDownloadSuccess) { var fileMd5 = Common.GetMD5HashFromFile(obj.SaveFilePath); if (m_autoUpgradePackpageMd5.ToLower() == fileMd5.ToLower()) { //文件MD5校验一致,说明包下载成功且未被破坏,提示用户安装 var saveDir = Path.GetDirectoryName(obj.SaveFilePath); var originFileName = Common.GetFileNameFromUrl(obj.Url); var finishedFilePath = saveDir + @"\" + originFileName; if (File.Exists(finishedFilePath)) { File.Delete(finishedFilePath); } File.Move(obj.SaveFilePath, finishedFilePath); if (!File.Exists(finishedFilePath)) { //重命名失败 Logger.Error(string.Format("重命名{0}到{1}失败", obj.SaveFilePath, finishedFilePath), logger); MessageBox.Show(App.Current.MainWindow, "升级包重命名操作出现异常,请检查!", "错误", MessageBoxButton.OK, MessageBoxImage.Warning); } else { DoInstallUpgradePackage(finishedFilePath); } } else { //安装包下载出现问题(可能安装包之前残留的断点数据不对,删除这个文件),提示用户重试 if (File.Exists(obj.SaveFilePath)) { File.Delete(obj.SaveFilePath); } MessageBox.Show(App.Current.MainWindow, "升级包MD5校验不一致,请重试!", "错误", MessageBoxButton.OK, MessageBoxImage.Warning); } } else { MessageBox.Show(App.Current.MainWindow, "下载过程中出现异常,请检查并重试!", "错误", MessageBoxButton.OK, MessageBoxImage.Warning); } }); }
private void DownloadThread() { //执行升级,后台下载(断点下载),下载完成后判断MD5是否合法,合法的话弹窗提示用户安装 var path = Path.Combine(App.LocalRPAStudioDir, "Update", $"{m_autoUpgradePackpageMd5}.exe"); if (m_downloader != null) { m_downloader.Stop(); if (m_downloader.IsRunning) { Thread.Sleep(500); } } m_downloader = new HttpDownloadFile(); m_downloader.OnRunningChanged = OnRunningChanged; m_downloader.OnDownloadFinished = OnDownloadFinished; m_downloader.OnDownloading = OnDownloading; m_downloader.Download(m_autoUpgradePackpageUrl, path); }
private void downloadThread() { //执行升级,后台下载(断点下载),下载完成后判断MD5是否合法,合法的话弹窗提示用户安装 var path = App.LocalRPAStudioDir + string.Format(@"\Update\{0}.exe", m_autoUpgradePackpageMd5); if (m_downloader != null) { m_downloader.Stop(); if (m_downloader.IsRunning) { Thread.Sleep(500); } } m_downloader = new HttpDownloadFile(); m_downloader.OnRunningChanged = OnRunningChanged; m_downloader.OnDownloadFinished = OnDownloadFinished; m_downloader.OnDownloading = OnDownloading; m_downloader.Download(m_autoUpgradePackpageUrl, path); }
private void OnDownloading(HttpDownloadFile obj) { //进度条控制 DownloadingProgressValue = (int)(100.0 * obj.FileDownloadedBytes / obj.FileTotalBytes); }