/// <summary> /// 获取更新程序 /// </summary> /// <param name="id"></param> /// <returns></returns> public static bool GetUpgrade(int id) { Model.ProgramUpgradeModel programModel = BLL.ProgramUpgradeBLL.GetProgramInfoById(id); if (programModel != null) { FileOperate advertfileOperate = new FileOperate(); SeatManage.EnumType.SeatManageSubsystem systemType = (SeatManage.EnumType.SeatManageSubsystem)(int) programModel.Application; SeatManage.Bll.FileOperate seatmanagefileOperate = new SeatManage.Bll.FileOperate(); SeatManage.ClassModel.FileUpdateInfo programInfo = SeatManage.ClassModel.FileUpdateInfo.Convert(programModel.AutoUpdaterXml); List <string> filePath = programInfo.BuildUpdateFilePaths(); foreach (string path in filePath) { string fullPath = string.Format("{0}{1}", ServiceSet.TempFilePath, path); //文件下载 if (!advertfileOperate.FileDownLoad(fullPath, path, systemType)) { return(false); } if (!seatmanagefileOperate.UpdateFile(fullPath, path, systemType)) { return(false); } } //执行完成,不需要更新数据库。 //上传完毕删除本地的文件以及文件夹。 SeatManage.ClassModel.FileUpdateInfo.DelDirectorys(ServiceSet.TempFilePath); return(true); } return(true); }
///// <summary> ///// 获取本地的文件更新信息 ///// </summary> ///// <param name="system">系统名称</param> ///// <returns></returns> //private FileUpdateInfo GetLocalUpdateInfo(SeatManage.EnumType.SeatManageSubsystem system) //{ // string sysDirectory = string.Format(@"{0}{1}\updater.xml", baseDirectory, system.ToString()); // if (File.Exists(sysDirectory)) // { // FileStream fs = new FileStream(sysDirectory, FileMode.Open); // StreamReader streamReader = new StreamReader(fs); // streamReader.BaseStream.Seek(0, SeekOrigin.Begin); // string arry = ""; // string strLine = streamReader.ReadLine(); // strLine = streamReader.ReadToEnd(); // streamReader.Close(); // streamReader.Dispose(); // fs.Close(); // fs.Dispose(); // Console.Write(arry); // Console.ReadLine(); // if (strLine != null) // { // FileUpdateInfo updateInfo = FileUpdateInfo.Convert(strLine); // return updateInfo; // } // else // { // return null; // } // } // else // { // return null; // } //} public void DownloadUpdateFiles() { SeatManage.EnumType.SeatManageSubsystem mysystem = SeatManage.EnumType.SeatManageSubsystem.Mediaplayer; FileUpdateInfo serviceUpateInfo = SeatManage.Bll.FileTransportBll.GetUpdateInfo(mysystem); List <FileSimpleInfo> isUpdateFiles = null; if (serviceUpateInfo != null) { //下载所有Xml中包含的文件,不对比本地文件版本 isUpdateFiles = serviceUpateInfo.BuildSystemFileSilmpleList();// GetNewVerFiles(serviceUpateInfo, mysystem);//下载播放器 for (int i = 0; i < isUpdateFiles.Count; i++) { //TODO:把文件先下载到临时文件夹中,下载无误,再移动到指定目录中。 (以后优化) string sysDirectory = string.Format(@"{0}{1}\{2}", baseDirectory, mysystem.ToString(), isUpdateFiles[i].Name); if (!downloadFile.FileDownLoad(sysDirectory, isUpdateFiles[i].Name, mysystem)) { break; } } } string StartProgram = ""; if (serviceUpateInfo != null) { StartProgram = serviceUpateInfo.StartProgram; } else { StartProgram = ConfigurationManager.AppSettings["MediaPlayerProgram"]; } if (string.IsNullOrEmpty(StartProgram)) { HandlerError("播放器启动失败,没有配置媒体播放器启动程序。"); } else { string mediaplayerStartPath = string.Format(@"{0}{1}\{2}", baseDirectory, mysystem.ToString(), StartProgram); if (File.Exists(mediaplayerStartPath)) { System.Diagnostics.Process.Start(mediaplayerStartPath); } else { if (HandlerError != null) { HandlerError(string.Format("播放器启动失败,文件{0}不存在。", mediaplayerStartPath)); } } } StartProgram = ""; mysystem = SeatManage.EnumType.SeatManageSubsystem.SeatClient; serviceUpateInfo = SeatManage.Bll.FileTransportBll.GetUpdateInfo(mysystem); if (serviceUpateInfo != null) { //下载所有Xml中包含的文件,不对比本地文件版本 isUpdateFiles = serviceUpateInfo.BuildSystemFileSilmpleList();// GetNewVerFiles(serviceUpateInfo, mysystem); //播放器下载完成下载选座终端。 for (int i = 0; i < isUpdateFiles.Count; i++) { string sysDirectory = string.Format(@"{0}{1}\{2}", baseDirectory, mysystem.ToString(), isUpdateFiles[i].Name); if (!downloadFile.FileDownLoad(sysDirectory, isUpdateFiles[i].Name, mysystem)) { break; } } serviceUpateInfo.Save(string.Format(@"{0}{1}\updater.xml", baseDirectory, mysystem.ToString()));//下载完成,保存信息 } if (serviceUpateInfo != null) { StartProgram = serviceUpateInfo.StartProgram; } else { StartProgram = ConfigurationManager.AppSettings["SeatClientProgram"]; } if (string.IsNullOrEmpty(StartProgram)) { HandlerError("选座终端启动失败,没有配置选座终端启动程序。"); } else { string seatClient = string.Format(@"{0}{1}\{2}", baseDirectory, mysystem.ToString(), StartProgram); if (File.Exists(seatClient)) { System.Diagnostics.Process.Start(seatClient); } else { HandlerError(string.Format("选座终端启动失败,文件{0}不存在。", seatClient)); } } if (Downloaded != null)//通知终端下载已经完成 { Downloaded(this, new EventArgs()); } }
public ViewModelPrintTest(SeatManage.EnumType.SeatManageSubsystem printtype, string template) { type = printtype; printText = template; }
private void BackupProgram(SeatManage.EnumType.SeatManageSubsystem systemType) { try { string programDir = ""; //根据类型设置要上传的程序路径 if (systemType == EnumType.SeatManageSubsystem.Mediaplayer) { programDir = string.Format("{0}MediaPlayer", AppDomain.CurrentDomain.BaseDirectory); } else if (systemType == EnumType.SeatManageSubsystem.SeatClient) { programDir = string.Format("{0}SeatClient", AppDomain.CurrentDomain.BaseDirectory); } //判断路径是否存在 if (!Directory.Exists(programDir)) { if (BackupFiled != null) { string errorMessage = string.Format("路径{0}不存在,请检查终端配置是否有误", programDir); BackupFiled(new BackupProgressInfo() { Message = errorMessage }); } return; } //去除文件只读属性 SetReadOnly(programDir); //构造系统文件结构 FileUpdateInfo files = new FileUpdateInfo(programDir); files.SubsystemType = systemType; files.UpdateLog = "初始版本"; files.ReleaseDate = DateTime.Now; //设置文件启动程序 if (systemType == EnumType.SeatManageSubsystem.Mediaplayer) { files.StartProgram = "MediaPlayerClient.exe"; } else if (systemType == EnumType.SeatManageSubsystem.SeatClient) { files.StartProgram = "SeatClient.exe"; } //删除Log,Video和SlipImage for (int i = 0; i < files.Files.Directories.Count; i++) { if (files.Files.Directories[i].Name == "Caputre" || files.Files.Directories[i].Name == "Log" || files.Files.Directories[i].Name == "SlipImage") { files.Files.Directories.Remove(files.Files.Directories[i]); } } //删除配置文件 for (int i = 0; i < files.Files.Files.Count; i++) { string exName = files.Files.Files[i].Name.Substring(files.Files.Files[i].Name.LastIndexOf(".") + 1); if (exName == "config") { files.Files.Files.Remove(files.Files.Files[i]); } } SeatManage.Bll.FileOperate fileUpload = new Bll.FileOperate(); List <string> filesPathList = files.BuildUpdateFilePaths(); for (int i = 0; i < filesPathList.Count; i++) { string fileFullName = string.Format("{0}{1}", programDir, filesPathList[i]); if (Progress != null) {//注册上传的消息 BackupProgressInfo arge = new BackupProgressInfo(); arge.ProgramName = systemType.ToString(); arge.UpdateFileName = filesPathList[i]; arge.Progress = (int)(((double)i / (filesPathList.Count - 1)) * 100); Progress(arge); } if (!fileUpload.UpdateFile(fileFullName, filesPathList[i], systemType)) { if (BackupFiled != null) { BackupProgressInfo arge = new BackupProgressInfo(); arge.Message = string.Format("文件{0}上传失败", filesPathList[i]); BackupFiled(arge); } } } FileUpdateInfo oldFile = SeatManage.Bll.FileTransportBll.GetUpdateInfo(systemType); if (oldFile == null) { SeatManage.Bll.FileTransportBll.Add(files); } else { SeatManage.Bll.FileTransportBll.Update(files); } } catch (Exception ex) { if (BackupFiled != null) { BackupProgressInfo arge = new BackupProgressInfo(); arge.Message = string.Format("备份失败,请检查是否缺失了“座位管理系统终端设置程序.exe.config”文件"); BackupFiled(arge); } } }