/// <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); } }
/// <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); }