From 3f975b8b3e3b1770e02b9adf37a3d3b190cfc520 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Mon, 20 Jul 2020 09:32:59 +0800 Subject: [PATCH] Get event data tenant id from IEventDataMayHaveTenantId. --- .../Volo/Abp/EventBus/EventBusBase.cs | 21 +++++-------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/EventBusBase.cs b/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/EventBusBase.cs index 6c3f93814a..80d4134db2 100644 --- a/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/EventBusBase.cs +++ b/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/EventBusBase.cs @@ -209,23 +209,12 @@ namespace Volo.Abp.EventBus protected virtual Guid? GetEventDataTenantId(object eventData) { - if (eventData is IMultiTenant multiTenantEventData) + return eventData switch { - return multiTenantEventData.TenantId; - } - - //TODO: Cache propertyInfo & Use interface or class to get Entity property. - var propertyInfo = eventData.GetType().GetProperty("Entity"); - if (propertyInfo != null && propertyInfo.GetGetMethod(true) != null) - { - var entity = propertyInfo.GetValue(eventData); - if (entity != null && entity is IMultiTenant multiTenantEntity) - { - return multiTenantEntity.TenantId; - } - } - - return CurrentTenant.Id; + IMultiTenant multiTenantEventData => multiTenantEventData.TenantId, + IEventDataMayHaveTenantId eventDataMayHaveTenantId when eventDataMayHaveTenantId.IsMultiTenant(out var tenantId) => tenantId, + _ => CurrentTenant.Id + }; } protected class EventTypeWithEventHandlerFactories