From df999dbf51a93b714a7df2fddc9a950c5fbfd251 Mon Sep 17 00:00:00 2001 From: qhy040404 Date: Tue, 7 May 2024 22:35:36 +0800 Subject: [PATCH] ensure metadata in slim --- .../DailyNote/DailyNoteViewModelSlim.cs | 37 +++++++++++-------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/DailyNote/DailyNoteViewModelSlim.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/DailyNote/DailyNoteViewModelSlim.cs index a3e785e9..a0b15245 100644 --- a/src/Snap.Hutao/Snap.Hutao/ViewModel/DailyNote/DailyNoteViewModelSlim.cs +++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/DailyNote/DailyNoteViewModelSlim.cs @@ -3,6 +3,7 @@ using Snap.Hutao.Model.Entity; using Snap.Hutao.Service.DailyNote; +using Snap.Hutao.Service.Metadata; using Snap.Hutao.Service.Notification; using System.Collections.ObjectModel; @@ -17,6 +18,7 @@ internal sealed partial class DailyNoteViewModelSlim : Abstraction.ViewModelSlim { private readonly ITaskContext taskContext; private readonly IInfoBarService infoBarService; + private readonly IMetadataService metadataService; private readonly IDailyNoteService dailyNoteService; private List? dailyNoteEntries; @@ -29,25 +31,28 @@ internal sealed partial class DailyNoteViewModelSlim : Abstraction.ViewModelSlim /// protected override async Task OpenUIAsync() { - try + if (await metadataService.InitializeAsync().ConfigureAwait(false)) { - await taskContext.SwitchToBackgroundAsync(); - ObservableCollection entries = await dailyNoteService - .GetDailyNoteEntryCollectionAsync() - .ConfigureAwait(false); + try + { + await taskContext.SwitchToBackgroundAsync(); + ObservableCollection entries = await dailyNoteService + .GetDailyNoteEntryCollectionAsync() + .ConfigureAwait(false); - // 此处使用浅拷贝的列表以避免当导航到实时便笺页面后 - // 由于主页尚未卸载,添加或删除便笺可能会崩溃的问题 - List entryList = [.. entries]; + // 此处使用浅拷贝的列表以避免当导航到实时便笺页面后 + // 由于主页尚未卸载,添加或删除便笺可能会崩溃的问题 + List entryList = [.. entries]; - await taskContext.SwitchToMainThreadAsync(); - DailyNoteEntries = entryList; - IsInitialized = true; - } - catch (Core.ExceptionService.UserdataCorruptedException ex) - { - infoBarService.Error(ex); - return; + await taskContext.SwitchToMainThreadAsync(); + DailyNoteEntries = entryList; + IsInitialized = true; + } + catch (Core.ExceptionService.UserdataCorruptedException ex) + { + infoBarService.Error(ex); + return; + } } } } \ No newline at end of file