|
|
|
|
@ -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
|
|
|
|
|
|