using System.Threading.Tasks; using Sozsoft.Languages.Entities; using Sozsoft.Languages.Localization; using Volo.Abp.Caching; using Volo.Abp.DependencyInjection; using Volo.Abp.Domain.Entities.Events; using Volo.Abp.EventBus; namespace Sozsoft.Languages; public class LanguageTextCacheItemInvalidator : ILocalEventHandler>, ITransientDependency { private readonly IDistributedCache cache; private readonly IDatabaseResourceLocalizer localizer; public LanguageTextCacheItemInvalidator(IDistributedCache cache, IDatabaseResourceLocalizer localizer) { this.cache = cache; this.localizer = localizer; } public async Task HandleEventAsync(EntityChangedEventData eventData) { //distributedCacheOptions.Value.KeyPrefix var key = LanguageTextCacheItem.CalculateCacheKey(eventData.Entity.ResourceName, eventData.Entity.CultureName); await cache.RemoveAsync(key); localizer.ClearLocalCache(); } }