GetScriptsResponsePerUserCacheInvalidator.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using Abp.CachedUniqueKeys;
  2. using Abp.Configuration;
  3. using Abp.Dependency;
  4. using Abp.Events.Bus.Entities;
  5. using Abp.Events.Bus.Handlers;
  6. using Abp.Localization;
  7. using VberZero.BaseSystem.Organizations;
  8. using VberZero.BaseSystem.Users;
  9. namespace VberZero.Caching;
  10. public class GetScriptsResponsePerUserCacheInvalidator :
  11. IEventHandler<EntityChangedEventData<UserPermissionSetting>>,
  12. IEventHandler<EntityChangedEventData<UserRole>>,
  13. IEventHandler<EntityChangedEventData<UserOrganizationUnit>>,
  14. IEventHandler<EntityDeletedEventData<User>>,
  15. IEventHandler<EntityChangedEventData<OrganizationUnitRole>>,
  16. IEventHandler<EntityChangedEventData<LanguageInfo>>,
  17. IEventHandler<EntityChangedEventData<SettingInfo>>,
  18. ITransientDependency
  19. {
  20. private const string CacheName = "GetScriptsResponsePerUser";
  21. private readonly ICachedUniqueKeyPerUser _cachedUniqueKeyPerUser;
  22. public GetScriptsResponsePerUserCacheInvalidator(ICachedUniqueKeyPerUser cachedUniqueKeyPerUser)
  23. {
  24. _cachedUniqueKeyPerUser = cachedUniqueKeyPerUser;
  25. }
  26. public void HandleEvent(EntityChangedEventData<UserPermissionSetting> eventData)
  27. {
  28. _cachedUniqueKeyPerUser.RemoveKey(CacheName, eventData.Entity.TenantId, eventData.Entity.UserId);
  29. }
  30. public void HandleEvent(EntityChangedEventData<UserRole> eventData)
  31. {
  32. _cachedUniqueKeyPerUser.RemoveKey(CacheName, eventData.Entity.TenantId, eventData.Entity.UserId);
  33. }
  34. public void HandleEvent(EntityChangedEventData<UserOrganizationUnit> eventData)
  35. {
  36. _cachedUniqueKeyPerUser.RemoveKey(CacheName, eventData.Entity.TenantId, eventData.Entity.UserId);
  37. }
  38. public void HandleEvent(EntityDeletedEventData<User> eventData)
  39. {
  40. _cachedUniqueKeyPerUser.RemoveKey(CacheName, eventData.Entity.TenantId, eventData.Entity.Id);
  41. }
  42. public void HandleEvent(EntityChangedEventData<OrganizationUnitRole> eventData)
  43. {
  44. _cachedUniqueKeyPerUser.ClearCache(CacheName);
  45. }
  46. public void HandleEvent(EntityChangedEventData<LanguageInfo> eventData)
  47. {
  48. _cachedUniqueKeyPerUser.ClearCache(CacheName);
  49. }
  50. public void HandleEvent(EntityChangedEventData<SettingInfo> eventData)
  51. {
  52. _cachedUniqueKeyPerUser.ClearCache(CacheName);
  53. }
  54. }