From 7f595a6981c9670b56ddf8e083117280bf5f233c Mon Sep 17 00:00:00 2001 From: Lightczx <1686188646@qq.com> Date: Mon, 18 Sep 2023 11:44:36 +0800 Subject: [PATCH] fix spiral abyss record refresh --- .../SpiralAbyss/SpiralAbyssRecordService.cs | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/Service/SpiralAbyss/SpiralAbyssRecordService.cs b/src/Snap.Hutao/Snap.Hutao/Service/SpiralAbyss/SpiralAbyssRecordService.cs index 39a92999..05bec7bb 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/SpiralAbyss/SpiralAbyssRecordService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/SpiralAbyss/SpiralAbyssRecordService.cs @@ -101,31 +101,28 @@ internal sealed partial class SpiralAbyssRecordService : ISpiralAbyssRecordServi ArgumentNullException.ThrowIfNull(metadataContext); int index = spiralAbysses.FirstIndexOf(s => s.ScheduleId == webSpiralAbyss.ScheduleId); - if (index > 0) + if (index >= 0) { await taskContext.SwitchToBackgroundAsync(); SpiralAbyssView view = spiralAbysses[index]; + SpiralAbyssEntry targetEntry; if (view.Entity is not null) { view.Entity.SpiralAbyss = webSpiralAbyss; await spiralAbyssRecordDbService.UpdateSpiralAbyssEntryAsync(view.Entity).ConfigureAwait(false); - - await taskContext.SwitchToMainThreadAsync(); - spiralAbysses.RemoveAt(index); - spiralAbysses.Insert(index, SpiralAbyssView.From(view.Entity, metadataContext)); - return; + targetEntry = view.Entity; } else { SpiralAbyssEntry newEntry = SpiralAbyssEntry.From(userAndUid.Uid.Value, webSpiralAbyss); - - await taskContext.SwitchToBackgroundAsync(); await spiralAbyssRecordDbService.AddSpiralAbyssEntryAsync(newEntry).ConfigureAwait(false); - - await taskContext.SwitchToMainThreadAsync(); - spiralAbysses.Insert(index, SpiralAbyssView.From(newEntry, metadataContext)); + targetEntry = newEntry; } + + await taskContext.SwitchToMainThreadAsync(); + spiralAbysses.RemoveAt(index); + spiralAbysses.Insert(index, SpiralAbyssView.From(targetEntry, metadataContext)); } } }