public async Task InitializeAsync() { await Task.Run(() => { try { var settingRepository = new SettingRepository(); ColumnVisibleSetting.Value = settingRepository.GetColumnVisibleSetting(); AppSetting.Value = settingRepository.GetAppSetting(); var isAutoImageSave = AppSetting.Value.IsAutoImageSave.Value; var isLatestScoreOutputAsText = AppSetting.Value.IsLatestScoreOutputAsText.Value; _scoreRepository = new ScoreRepository(); _scoreScreenShotRepository = ScoreScreenShotRepository.Create(isAutoImageSave); _scoreFileRepository = ScoreFileRepository.Create(isLatestScoreOutputAsText); _fezScreenShooter = new FEZScreenShooter(); _fezScoreAnalyzer = new FEZScoreAnalyzer(); // DBファイルが無ければ作成、作成済みだが古いバージョンの場合は自動で最新のテーブル構成に更新する _scoreRepository.Database.Migrate(); foreach (var score in _scoreRepository.ScoreDbSet.OrderBy(x => x.記録日時)) { RegisterToDbUpdateWhenPropertyChanged(score); ScoreCollection.Add(score); } LatestScore.Value = ScoreCollection.LastOrDefault() ?? new ScoreEntity(); // 監視状態ONの状態で終了していた場合は、初期化時に監視を開始する if (AppSetting.Value.IsAccumulatingAtLastTime.Value) { StartToAccumulateScore(); } } catch (Exception ex) { ApplicationError.HandleUnexpectedError(ex); } }); // 初回起動時は案内メッセージを表示する(2回目以降は表示しない) if (AppSetting.Value.IsFirstBoot.Value) { MessageBox.Show(Properties.Resources.FirstBootInfoMessage, "Info"); AppSetting.Value.IsFirstBoot.Value = false; } }