diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/AvatarPropertyViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/AvatarPropertyViewModel.cs index e6f1c8ef..2a839600 100644 --- a/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/AvatarPropertyViewModel.cs +++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/AvatarPropertyViewModel.cs @@ -197,19 +197,14 @@ internal sealed partial class AvatarPropertyViewModel : Abstraction.ViewModel, I return; } - Response consumptionResponse = await calculatorClient.BatchComputeAsync(userAndUid, delta).ConfigureAwait(false); + Response response = await calculatorClient.BatchComputeAsync(userAndUid, delta).ConfigureAwait(false); - if (!consumptionResponse.IsOk()) + if (!response.IsOk()) { return; } - CalculatorBatchConsumption batchConsumption = consumptionResponse.Data; - - CalculatorConsumption? consumption = batchConsumption.Items.FirstOrDefault(); - ArgumentNullException.ThrowIfNull(consumption); - - if (!await SaveCultivationAsync(consumption, delta).ConfigureAwait(false)) + if (!await SaveCultivationAsync(response.Data.Items.Single(), delta).ConfigureAwait(false)) { infoBarService.Warning(SH.ViewModelCultivationEntryAddWarning); return; @@ -246,9 +241,10 @@ internal sealed partial class AvatarPropertyViewModel : Abstraction.ViewModel, I ContentDialog progressDialog = await contentDialogFactory .CreateForIndeterminateProgressAsync(SH.ViewModelAvatarPropertyBatchCultivateProgressTitle) .ConfigureAwait(false); + + BatchCultivateResult result = default; using (await progressDialog.BlockAsync(taskContext).ConfigureAwait(false)) { - BatchCultivateResult result = default; List deltas = []; foreach (AvatarView avatar in avatars) { @@ -261,16 +257,14 @@ internal sealed partial class AvatarPropertyViewModel : Abstraction.ViewModel, I deltas.Add(copy); } - Response consumptionResponse = await calculatorClient.BatchComputeAsync(userAndUid, deltas).ConfigureAwait(false); + Response response = await calculatorClient.BatchComputeAsync(userAndUid, deltas).ConfigureAwait(false); - if (!consumptionResponse.IsOk()) + if (!response.IsOk()) { return; } - CalculatorBatchConsumption batchConsumption = consumptionResponse.Data; - - foreach ((CalculatorConsumption consumption, CalculatorAvatarPromotionDelta delta) in batchConsumption.Items.Zip(deltas)) + foreach ((CalculatorConsumption consumption, CalculatorAvatarPromotionDelta delta) in response.Data.Items.Zip(deltas)) { if (!await SaveCultivationAsync(consumption, delta).ConfigureAwait(false)) { @@ -280,15 +274,15 @@ internal sealed partial class AvatarPropertyViewModel : Abstraction.ViewModel, I ++result.SucceedCount; } + } - if (result.Interrupted) - { - infoBarService.Warning(SH.FormatViewModelCultivationBatchAddIncompletedFormat(result.SucceedCount, result.SkippedCount)); - } - else - { - infoBarService.Success(SH.FormatViewModelCultivationBatchAddCompletedFormat(result.SucceedCount, result.SkippedCount)); - } + if (result.Interrupted) + { + infoBarService.Warning(SH.FormatViewModelCultivationBatchAddIncompletedFormat(result.SucceedCount, result.SkippedCount)); + } + else + { + infoBarService.Success(SH.FormatViewModelCultivationBatchAddCompletedFormat(result.SucceedCount, result.SkippedCount)); } } diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Wiki/WikiAvatarViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Wiki/WikiAvatarViewModel.cs index 086cca59..2a7f7b9f 100644 --- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Wiki/WikiAvatarViewModel.cs +++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Wiki/WikiAvatarViewModel.cs @@ -177,16 +177,16 @@ internal sealed partial class WikiAvatarViewModel : Abstraction.ViewModel return; } - Response consumptionResponse = await calculateClient + Response response = await calculateClient .BatchComputeAsync(userAndUid, delta) .ConfigureAwait(false); - if (!consumptionResponse.IsOk()) + if (!response.IsOk()) { return; } - CalculateBatchConsumption batchConsumption = consumptionResponse.Data; + CalculateBatchConsumption batchConsumption = response.Data; LevelInformation levelInformation = LevelInformation.From(delta); try { diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Wiki/WikiWeaponViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Wiki/WikiWeaponViewModel.cs index b6ed7362..a90604e2 100644 --- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Wiki/WikiWeaponViewModel.cs +++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Wiki/WikiWeaponViewModel.cs @@ -170,16 +170,16 @@ internal sealed partial class WikiWeaponViewModel : Abstraction.ViewModel return; } - Response consumptionResponse = await calculateClient + Response response = await calculateClient .BatchComputeAsync(userAndUid, delta) .ConfigureAwait(false); - if (!consumptionResponse.IsOk()) + if (!response.IsOk()) { return; } - CalculateBatchConsumption batchConsumption = consumptionResponse.Data; + CalculateBatchConsumption batchConsumption = response.Data; LevelInformation levelInformation = LevelInformation.From(delta); try {