From df6c13631f899a6f5a975384fe855cfe7609429d Mon Sep 17 00:00:00 2001 From: gdlcf88 Date: Mon, 8 Aug 2022 16:11:07 +0800 Subject: [PATCH] Persist inventory on deactivate --- .../EShop/Plugins/Inventories/DaprActors/InventoryActor.cs | 6 +++--- .../Plugins/Inventories/OrleansGrains/InventoryGrain.cs | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/Inventories/DaprActors/src/EasyAbp.EShop.Plugins.Inventories.DaprActors/EasyAbp/EShop/Plugins/Inventories/DaprActors/InventoryActor.cs b/plugins/Inventories/DaprActors/src/EasyAbp.EShop.Plugins.Inventories.DaprActors/EasyAbp/EShop/Plugins/Inventories/DaprActors/InventoryActor.cs index b78c33f8..29f5555e 100644 --- a/plugins/Inventories/DaprActors/src/EasyAbp.EShop.Plugins.Inventories.DaprActors/EasyAbp/EShop/Plugins/Inventories/DaprActors/InventoryActor.cs +++ b/plugins/Inventories/DaprActors/src/EasyAbp.EShop.Plugins.Inventories.DaprActors/EasyAbp/EShop/Plugins/Inventories/DaprActors/InventoryActor.cs @@ -81,10 +81,10 @@ public class InventoryActor : Actor, IInventoryActor FlashSalesInventoryUpdated = false; } - protected virtual async Task SetInventoryStateAsync(InventoryStateModel state) - { + protected virtual async Task SetInventoryStateAsync(InventoryStateModel state) => await StateManager.SetStateAsync(InventoryStateName, state); - } + + protected override async Task OnDeactivateAsync() => await SetInventoryStateAsync(await GetInventoryStateAsync()); protected virtual void InternalIncreaseInventory(InventoryStateModel stateModel, int quantity, bool decreaseSold) { diff --git a/plugins/Inventories/OrleansGrains/src/EasyAbp.EShop.Plugins.Inventories.OrleansGrains/EasyAbp/EShop/Plugins/Inventories/OrleansGrains/InventoryGrain.cs b/plugins/Inventories/OrleansGrains/src/EasyAbp.EShop.Plugins.Inventories.OrleansGrains/EasyAbp/EShop/Plugins/Inventories/OrleansGrains/InventoryGrain.cs index b17aadbc..1815bcb3 100644 --- a/plugins/Inventories/OrleansGrains/src/EasyAbp.EShop.Plugins.Inventories.OrleansGrains/EasyAbp/EShop/Plugins/Inventories/OrleansGrains/InventoryGrain.cs +++ b/plugins/Inventories/OrleansGrains/src/EasyAbp.EShop.Plugins.Inventories.OrleansGrains/EasyAbp/EShop/Plugins/Inventories/OrleansGrains/InventoryGrain.cs @@ -69,6 +69,8 @@ public class InventoryGrain : Grain, IInventoryGrain FlashSalesInventoryUpdated = false; } + public override Task OnDeactivateAsync() => WriteStateAsync(); + protected virtual void InternalIncreaseInventory(int quantity, bool decreaseSold) { if (quantity < 0)