From 642ce1aa18ae51bc2a8f1045852ca4f9cfa74cf9 Mon Sep 17 00:00:00 2001 From: Jadyn Date: Wed, 6 Jul 2022 14:34:07 +0800 Subject: [PATCH] Remove cache on unitofwork completed --- .../FlashSalesPlanCacheInvalidator.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalesPlans/FlashSalesPlanCacheInvalidator.cs b/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalesPlans/FlashSalesPlanCacheInvalidator.cs index 94434dbd..1fb0f488 100644 --- a/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalesPlans/FlashSalesPlanCacheInvalidator.cs +++ b/plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalesPlans/FlashSalesPlanCacheInvalidator.cs @@ -4,20 +4,30 @@ using Volo.Abp.Caching; using Volo.Abp.DependencyInjection; using Volo.Abp.Domain.Entities.Events; using Volo.Abp.EventBus; +using Volo.Abp.Uow; namespace EasyAbp.EShop.Plugins.FlashSales.FlashSalesPlans; public class FlashSalesPlanCacheInvalidator : ILocalEventHandler>, ITransientDependency { protected IDistributedCache DistributedCache { get; } + protected IUnitOfWorkManager UnitOfWorkManager { get; } - public FlashSalesPlanCacheInvalidator(IDistributedCache distributedCache) + public FlashSalesPlanCacheInvalidator( + IDistributedCache distributedCache, + IUnitOfWorkManager unitOfWorkManager) { DistributedCache = distributedCache; + UnitOfWorkManager = unitOfWorkManager; } - public virtual async Task HandleEventAsync(EntityChangedEventData eventData) + public virtual Task HandleEventAsync(EntityChangedEventData eventData) { - await DistributedCache.RemoveAsync(eventData.Entity.Id); + UnitOfWorkManager.Current.OnCompleted(async () => + { + await DistributedCache.RemoveAsync(eventData.Entity.Id); + }); + + return Task.CompletedTask; } }