| 12345678910111213141516171819202122232425262728293031323334353637 |
- 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<EntityDeletedEventData<User>>,
- ITransientDependency
- {
- private readonly IRepository<NotificationSubscriptionInfo, Guid> _notificationSubscriptionRepository;
- private readonly IUnitOfWorkManager _unitOfWorkManager;
- public NotificationSubscriptionSynchronizer(
- IRepository<NotificationSubscriptionInfo, Guid> notificationSubscriptionRepository,
- IUnitOfWorkManager unitOfWorkManager
- )
- {
- _notificationSubscriptionRepository = notificationSubscriptionRepository;
- _unitOfWorkManager = unitOfWorkManager;
- }
- public virtual void HandleEvent(EntityDeletedEventData<User> eventData)
- {
- _unitOfWorkManager.WithUnitOfWork(() =>
- {
- using (_unitOfWorkManager.Current.SetTenantId(eventData.Entity.TenantId))
- {
- _notificationSubscriptionRepository.Delete(x => x.UserId == eventData.Entity.Id);
- }
- });
- }
- }
|