| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- using Abp.Dependency;
- using Abp.Domain.Repositories;
- using Abp.Domain.Uow;
- using Abp.Events.Bus.Entities;
- using Abp.Events.Bus.Handlers;
- using VberZero.BaseSystem.Organizations;
- using VberZero.BaseSystem.Roles;
- namespace VberZero.Organizations;
- /// <summary>
- /// 删除角色时从所有组织单位中删除角色。
- /// </summary>
- public class OrganizationUnitRoleRemover :
- IEventHandler<EntityDeletedEventData<Role>>,
- ITransientDependency
- {
- private readonly IRepository<OrganizationUnitRole, long> _organizationUniRoleRepository;
- private readonly IUnitOfWorkManager _unitOfWorkManager;
- public OrganizationUnitRoleRemover(
- IRepository<OrganizationUnitRole, long> organizationUniRoleRepository,
- IUnitOfWorkManager unitOfWorkManager)
- {
- _organizationUniRoleRepository = organizationUniRoleRepository;
- _unitOfWorkManager = unitOfWorkManager;
- }
- public virtual void HandleEvent(EntityDeletedEventData<Role> eventData)
- {
- _unitOfWorkManager.WithUnitOfWork(() =>
- {
- using (_unitOfWorkManager.Current.SetTenantId(eventData.Entity.TenantId))
- {
- _organizationUniRoleRepository.Delete(
- uou => uou.RoleId == eventData.Entity.Id
- );
- }
- });
- }
- }
|