private void UpdateDelayTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { updateDelayTimer.Stop(); new Thread(() => { var hangulClockCommonSetting = new DataKit().Realm.All <HangulClockCommonSetting>(); if (hangulClockCommonSetting.Count() <= 0) { this.Dispatcher.Invoke(new Action(() => { updateText.Content = "업데이트 확인 실패."; })); } else { var hu = hangulClockCommonSetting.First().hu; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(UPDATE_CHECK_URL); request.Headers["hu"] = hu; request.Headers["platform"] = "windows"; request.Headers["version"] = VersionKit.HANGULCLOCK_VERSION; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream stream = response.GetResponseStream(); StreamReader reader = new StreamReader(stream); string result = reader.ReadToEnd(); stream.Close(); response.Close(); JObject obj = JObject.Parse(result); bool isUpdateAvailable = (bool)obj["isUpdateAvailable"]; this.Dispatcher.Invoke(() => { if (isUpdateAvailable) { updateText.Content = "업데이트 있음."; Process p = new Process(); p.StartInfo = new ProcessStartInfo("HangulClockUpdateManager"); p.Start(); } else { updateText.Content = "업데이트 없음. 최신버전."; } }); } }).Start(); }
private void checkUpdate() { new Thread(() => { var DataKit = new DataKit(); var hangulClockCommonSetting = new DataKit().Realm.All <HangulClockCommonSetting>(); if (hangulClockCommonSetting.Count() <= 0) { if (MessageBox.Show("업데이트를 확인할 수 없습니다.\n유효성 검사를 실패하였습니다.", "업데이트 확인 오류", MessageBoxButton.OK, MessageBoxImage.Warning) == MessageBoxResult.OK) { Environment.Exit(0); } } else { var hu = hangulClockCommonSetting.First().hu; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(UPDATE_CHECK_URL); request.Headers["hu"] = hu; request.Headers["platform"] = "windows"; request.Headers["version"] = VersionKit.HANGULCLOCK_VERSION; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream stream = response.GetResponseStream(); StreamReader reader = new StreamReader(stream); string result = reader.ReadToEnd(); stream.Close(); response.Close(); JObject obj = JObject.Parse(result); bool isUpdateAvailable = (bool)obj["isUpdateAvailable"]; string latestVersion = obj["version"].ToString(); downloadURL = obj["downloadURL"].ToString(); JArray changeLogs = JArray.Parse(Newtonsoft.Json.JsonConvert.SerializeObject(obj["changeLog"])); this.Dispatcher.Invoke(() => { if (isUpdateAvailable) { newVersionAvailable.Content = $"새로운 버전 {latestVersion}으로 업데이트 할 수 있습니다."; for (var i = 0; i < changeLogs.Count; i++) { updateComment.Text += $" - {changeLogs[i].ToString()}\n"; } } else { newVersionAvailable.Content = "현재 버전이 최신버전입니다."; updateButton.IsEnabled = false; updateComment.IsEnabled = false; } loadingIndicator.Visibility = Visibility.Hidden; }); } }).Start(); }