예제 #1
0
 /// <summary>
 /// 转换
 /// </summary>
 /// <param name="configStr"></param>
 /// <returns></returns>
 public static StartProgram_ViewModel Parse(string configStr)
 {
     try
     {
         StartProgram_ViewModel viewModel = new StartProgram_ViewModel();
         string type = configStr.Split(':')[0];
         string path = configStr.Split(':')[1];
         viewModel.DrictortyPath      = path.Split(',')[0].Substring(0, path.Split(',')[0].IndexOf("\\"));
         viewModel.SubsystemType      = (SeatManageSubsystem)System.Enum.Parse(typeof(SeatManageSubsystem), type);
         viewModel.StartProgramClient = path.Split(',')[0].Substring(path.Split(',')[0].IndexOf("\\"));
         viewModel.ProcessName        = path.Split(',')[1];
         return(viewModel);
     }
     catch
     {
         return(null);
     }
 }
예제 #2
0
        /// <summary>
        /// 下载文件
        /// </summary>
        /// <param name="subsystemType"></param>
        public bool DownloadUpdateFiles()
        {
            List <string> startPrograms = new List <string>();
            XmlDocument   doc           = new XmlDocument();
            string        path          = string.Format(@"{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "ClientLauncher.exe.config");

            if (!File.Exists(path))
            {
                ShowMessage = "找不到配置文件请查看配置文件是否存在。";
                return(false);
            }
            doc.Load(path);
            XmlNodeList nodes = doc.SelectNodes("//configuration/appSettings/add");

            foreach (XmlNode node in nodes)
            {
                if (node.Attributes["key"] != null && node.Attributes["key"].Value == "StartUpProgram")
                {
                    startPrograms.Add(node.Attributes["value"].Value);
                }
            }
            if (startPrograms.Count < 1)
            {
                ShowMessage = "找不到配置的启动项,请检查配置文件是否正确。";
                return(false);
            }
            programs = new List <StartProgram_ViewModel>();
            foreach (string s in startPrograms)
            {
                StartProgram_ViewModel p = StartProgram_ViewModel.Parse(s);
                if (p == null)
                {
                    ShowMessage = "配置的启动项查找失败,请检查配置文件是否正确。";
                    return(false);
                }
                programs.Add(p);
            }
            foreach (StartProgram_ViewModel vm in programs)
            {
                if (vm.SubsystemType == SeatManage.EnumType.SeatManageSubsystem.None)
                {
                    continue;
                }
                string savedri = AppDomain.CurrentDomain.BaseDirectory + vm.DrictortyPath;
                if (!Directory.Exists(savedri))
                {
                    ShowMessage = "文件路径不存在,请检查配置。";
                    return(false);
                }
                FileReadOnly.RemovingReadOnly(savedri);
                ShowMessage = "查找文件更新。";
                FileUpdateInfo serviceUpateInfo = FileTransportBll.GetUpdateInfo(vm.SubsystemType);
                // System.Windows.MessageBox.Show(vm.SubsystemType.ToString());
                if (serviceUpateInfo == null)
                {
                    //System.Windows.MessageBox.Show("找不到要更新的东西");
                    continue;
                }
                ShowMessage = "开始更新文件。";
                List <FileSimpleInfo> isUpdateFiles = serviceUpateInfo.BuildSystemFileSilmpleList();
                foreach (FileSimpleInfo Fsi in isUpdateFiles)
                {
                    string sysDirectory = string.Format(@"{0}\\{1}", savedri, Fsi.Name);
                    if (!DownloadFile.FileDownLoad(sysDirectory, Fsi.Name, vm.SubsystemType))
                    {
                        break;
                    }
                }
            }
            foreach (StartProgram_ViewModel vm in programs)
            {
                string filepath = AppDomain.CurrentDomain.BaseDirectory + vm.DrictortyPath + "\\" + vm.StartProgramClient;
                if (!File.Exists(filepath))
                {
                    ShowMessage = "启动文件不存在,请检查配置。";
                    return(false);
                }
                ShowMessage = "程序启动。";
                System.Diagnostics.Process.Start(filepath);
            }
            return(true);
        }