| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- using Abp.Dependency;
- using Abp.Domain.Repositories;
- using Abp.Domain.Uow;
- using Abp.Events.Bus.Entities;
- using Abp.Events.Bus.Handlers;
- using VberZero.BaseSystem.Users;
- namespace VberZero.Authorization.Users;
- /// <summary>
- /// 删除用户时从所有组织单位中删除该用户。
- /// </summary>
- public class UserOrganizationUnitRemover :
- IEventHandler<EntityDeletedEventData<User>>,
- ITransientDependency
- {
- private readonly IRepository<UserOrganizationUnit, long> _userOrganizationUnitRepository;
- private readonly IUnitOfWorkManager _unitOfWorkManager;
- public UserOrganizationUnitRemover(
- IRepository<UserOrganizationUnit, long> userOrganizationUnitRepository,
- IUnitOfWorkManager unitOfWorkManager)
- {
- _userOrganizationUnitRepository = userOrganizationUnitRepository;
- _unitOfWorkManager = unitOfWorkManager;
- }
- public virtual void HandleEvent(EntityDeletedEventData<User> eventData)
- {
- _unitOfWorkManager.WithUnitOfWork(() =>
- {
- using (_unitOfWorkManager.Current.SetTenantId(eventData.Entity.TenantId))
- {
- _userOrganizationUnitRepository.Delete(
- uou => uou.UserId == eventData.Entity.Id
- );
- }
- });
- }
- }
|