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)