Example #1
0
        /// <summary>
        /// KAMONOHASHIのバージョン情報を取得するメソッド
        /// </summary>
        protected override void DoWork(object state, int doWorkCount)
        {
            LogInfo($"KAMONOHASHIのバージョン情報を取得します。(第 {doWorkCount} 回目)");
            try
            {
                // 現在のバージョンを取得する
                string version = versionLogic.GetVersion();

                VersionModel versionModel = new VersionModel(version);

                // バージョン確認するか否か確認
                if (!noCheckVersion)
                {
                    // 開発時は問い合わせない
                    if (version != "develop")
                    {
                        // KAMONOHASHIのバージョン管理サービスに問い合わせる
                        var currentVersion = versionService.GetKQIVersionAsync(version).Result;
                        if (currentVersion.IsSuccess && currentVersion.Value != null)
                        {
                            versionModel.ReleaseDate = ToFormatedString(currentVersion.Value.ReleaseDate);
                            versionModel.Support     = currentVersion.Value.Support;
                        }
                    }

                    // KAMONOHASHIの最新リリース番号を取得する
                    var latestVersion = versionService.GetLatestReleaseAsync().Result;
                    if (latestVersion.IsSuccess && latestVersion.Value != null)
                    {
                        versionModel.LatestVersion = latestVersion.Value.TagName;
                    }
                }

                // インメモリキャッシュにバージョン情報を格納する
                memoryCache.Set("version", versionModel);
            }
            catch (Exception e)
            {
                // 通信エラーなどで例外をキャッチしたが ERROR ログを出力して処理を継続
                LogError($"KAMONOHASHIのバージョン情報取得中に例外をキャッチしましたが処理を継続します。 例外メッセージ=\"{e.Message}\"");
            }
        }