using GeekDesk.Constant; using GeekDesk.Interface; using GeekDesk.Util; using GeekDesk.ViewModel; using Newtonsoft.Json.Linq; using System; using System.Configuration; using System.Diagnostics; using System.Windows; using System.Windows.Input; namespace GeekDesk.Control.Windows { /// /// UpdateWindow.xaml 的交互逻辑 /// public partial class UpdateWindow : Window, IWindowCommon { private static AppConfig appConfig = MainWindow.appData.AppConfig; private static string githubUrl = ""; private static string giteeUrl = ""; private UpdateWindow(JObject jo) { try { WindowStartupLocation = WindowStartupLocation.CenterScreen; this.Topmost = true; InitializeComponent(); DataHandle(jo); } catch (Exception) { } } /// /// 移动窗口 /// /// /// private void DragMove(object sender, System.Windows.Input.MouseButtonEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed) { DragMove(); } } private void DataHandle(JObject jo) { Title.Text = StringUtil.IsEmpty(jo["title"]) ? "" : jo["title"].ToString(); SubTitle.Text = StringUtil.IsEmpty(jo["subTitle"]) ? "" : jo["subTitle"].ToString(); MsgTitle.Text = StringUtil.IsEmpty(jo["msgTitle"]) ? "" : jo["msgTitle"].ToString(); JArray ja = JArray.Parse(StringUtil.IsEmpty(jo["msg"]) ? "[]" : jo["msg"].ToString()); githubUrl = StringUtil.IsEmpty(jo["githubUrl"]) ? ConfigurationManager.AppSettings["GitHubUrl"] : jo["githubUrl"].ToString(); giteeUrl = StringUtil.IsEmpty(jo["giteeUrl"]) ? ConfigurationManager.AppSettings["GiteeUrl"] : jo["giteeUrl"].ToString(); string msg = ""; for (int i = 0; i < ja.Count; i++) { msg += "• " + ja[i].ToString() + "\n"; } Msg.Text = msg; } private void Close_Click(object sender, RoutedEventArgs e) { this.Close(); } private void Confirm_Click(object sender, RoutedEventArgs e) { string packageUrl; switch (appConfig.UpdateType) { case UpdateType.GitHub: packageUrl = githubUrl; break; default: packageUrl = giteeUrl; break; } Process.Start(packageUrl); this.Close(); } private static System.Windows.Window window = null; public static void Show(JObject jo) { if (window == null || !window.Activate()) { window = new UpdateWindow(jo); } window.Show(); Keyboard.Focus(window); } public void OnKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Escape) { this.DataContext = null; this.Close(); } } } }