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();
        }
Beispiel #2
0
        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();
        }