コード例 #1
0
        /// <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);
        }
コード例 #2
0
        ///// <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());
            }
        }
コード例 #3
0
 public ViewModelPrintTest(SeatManage.EnumType.SeatManageSubsystem printtype, string template)
 {
     type      = printtype;
     printText = template;
 }
コード例 #4
0
 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);
         }
     }
 }