async void MainWindow_Loaded(object sender, RoutedEventArgs e) { tbkCurrentVersion.Text = "当前客户端版本:" + UpgradeSettings.Instance["CurrentVersion"]; this.MouseDown += MainWindow_MouseDown; tbkUpgradeInfo.Text = "检查更新中..."; _lastestVersionInfo = await UpgradeHelper.TryGetNewVersion(); //有更新则直接更新掉 if (_lastestVersionInfo != null) { ExcuteUpgrade(); } else { FinishUpgrade(); } }
public ActionResult Add(string version) { if (string.IsNullOrEmpty(version)) { ViewBag.Title = "版本添加"; } else { ViewBag.Title = "版本编辑"; } var fileVersions = VersionService.GetLastestVersion(); var cVersion = fileVersions.Versions.FirstOrDefault(m => m.VersionName == version); if (cVersion == null) { cVersion = new UpgradeFileInfo(); } return(View(cVersion)); }
public ActionResult Add(AddVersionModel versionModel) { try { var fileVersions = VersionService.GetLastestVersion(); var cVersion = new UpgradeFileInfo(); cVersion.VersionName = versionModel.VersionName; cVersion.LastUpdateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); cVersion.Description = versionModel.Description; cVersion.IsFirstVersion = fileVersions.Versions.Count == 0; var lastestVersion = fileVersions.Versions.SingleOrDefault(m => m.IsLastVersion); if (fileVersions.Versions.Count == 0 || versionModel.IsLastVersion == "true") { if (lastestVersion != null) { lastestVersion.IsLastVersion = false; } cVersion.IsLastVersion = true; } else { cVersion.IsLastVersion = false; } //处理文件 //要删除的 cVersion.FileToDelete = versionModel.FileToDelete == null ? null : versionModel.FileToDelete.ToList(); //文件保存路径 string pathForEntry = Server.MapPath(FILEENTRYPATH + "/" + versionModel.VersionName); cVersion.FilesToUpgrade = new List <string>(); cVersion.FilesSize = 0.0; //要更新的 foreach (var fileName in versionModel.FilesToUpgrade) { var fileInfo = new FileInfo(fileName); bool isShouldIngnore = !fileInfo.Exists; if (fileVersions.FileExtensionToIgnore.Where(m => m.ToUpper() == fileInfo.Extension.ToUpper()).Count() > 0) { isShouldIngnore = true; } if (fileVersions.FilesToIgnore.Where(m => m.ToUpper() == fileInfo.Name.ToUpper()).Count() > 0) { isShouldIngnore = true; } if (!isShouldIngnore) { //文件相对路径 string fileRelativeName = fileName.Remove(0, pathForEntry.Length + 1); cVersion.FilesToUpgrade.Add(fileRelativeName); var fileStream = fileInfo.OpenRead(); cVersion.FilesSize += fileStream.Length / 1024; fileStream.Close(); } } //递归删除版本目录下不需要更新的文件 var fileNamesShouldKeep = cVersion.FilesToUpgrade.Select(m => Path.Combine(pathForEntry, m)); LoopDeleteFile(pathForEntry, fileNamesShouldKeep.ToList()); fileVersions.Versions.Add(cVersion); VersionService.SaveVersionInfo(fileVersions); return(Json(new { IsSuccess = true })); } catch (Exception ex) { return(Json(new { IsSuccess = false, Message = ex.Message })); } }