using Abp.Dependency; using Abp.Domain.Repositories; using Abp.Domain.Uow; using Abp.Events.Bus.Entities; using Abp.Events.Bus.Handlers; using Abp.Notifications; using VberZero.BaseSystem.Users; namespace VberZero.Notifications; public class NotificationSubscriptionSynchronizer : IEventHandler>, ITransientDependency { private readonly IRepository _notificationSubscriptionRepository; private readonly IUnitOfWorkManager _unitOfWorkManager; public NotificationSubscriptionSynchronizer( IRepository notificationSubscriptionRepository, IUnitOfWorkManager unitOfWorkManager ) { _notificationSubscriptionRepository = notificationSubscriptionRepository; _unitOfWorkManager = unitOfWorkManager; } public virtual void HandleEvent(EntityDeletedEventData eventData) { _unitOfWorkManager.WithUnitOfWork(() => { using (_unitOfWorkManager.Current.SetTenantId(eventData.Entity.TenantId)) { _notificationSubscriptionRepository.Delete(x => x.UserId == eventData.Entity.Id); } }); } }