diff --git a/src/modules/Elsa.Workflows.Management/Services/WorkflowDefinitionCacheManager.cs b/src/modules/Elsa.Workflows.Management/Services/WorkflowDefinitionCacheManager.cs
index 8fdbd6d745..973a2e718b 100644
--- a/src/modules/Elsa.Workflows.Management/Services/WorkflowDefinitionCacheManager.cs
+++ b/src/modules/Elsa.Workflows.Management/Services/WorkflowDefinitionCacheManager.cs
@@ -1,43 +1,44 @@
using Elsa.Caching;
using Elsa.Common.Models;
+using Elsa.Common.Multitenancy;
using Elsa.Workflows.Management.Filters;
namespace Elsa.Workflows.Management.Services;
///
-public class WorkflowDefinitionCacheManager(ICacheManager cache, IHasher hasher) : IWorkflowDefinitionCacheManager
+public class WorkflowDefinitionCacheManager(ICacheManager cache, IHasher hasher, ITenantAccessor tenantAccessor) : IWorkflowDefinitionCacheManager
{
///
public ICacheManager Cache => cache;
///
- public string CreateWorkflowDefinitionVersionCacheKey(string definitionId, VersionOptions versionOptions) => $"WorkflowDefinition:{definitionId}:{versionOptions}";
+ public string CreateWorkflowDefinitionVersionCacheKey(string definitionId, VersionOptions versionOptions) => TenantPrefix() + $"WorkflowDefinition:{definitionId}:{versionOptions}";
///
public string CreateWorkflowDefinitionFilterCacheKey(WorkflowDefinitionFilter filter)
{
var hash = hasher.Hash(filter);
- return $"WorkflowDefinition:{hash}";
+ return TenantPrefix() + $"WorkflowDefinition:{hash}";
}
///
- public string CreateWorkflowVersionCacheKey(string definitionId, VersionOptions versionOptions) => $"Workflow:{definitionId}:{versionOptions}";
+ public string CreateWorkflowVersionCacheKey(string definitionId, VersionOptions versionOptions) => TenantPrefix() + $"Workflow:{definitionId}:{versionOptions}";
///
- public string CreateWorkflowVersionCacheKey(string definitionVersionId) => $"Workflow:{definitionVersionId}";
+ public string CreateWorkflowVersionCacheKey(string definitionVersionId) => TenantPrefix() + $"Workflow:{definitionVersionId}";
///
public string CreateWorkflowFilterCacheKey(WorkflowDefinitionFilter filter)
{
var hash = hasher.Hash(filter);
- return $"Workflow:{hash}";
+ return TenantPrefix() + $"Workflow:{hash}";
}
///
- public string CreateWorkflowDefinitionVersionCacheKey(string definitionVersionId) => $"WorkflowDefinition:{definitionVersionId}";
+ public string CreateWorkflowDefinitionVersionCacheKey(string definitionVersionId) => TenantPrefix() + $"WorkflowDefinition:{definitionVersionId}";
///
- public string CreateWorkflowDefinitionChangeTokenKey(string definitionId) => $"WorkflowChangeToken:{definitionId}";
+ public string CreateWorkflowDefinitionChangeTokenKey(string definitionId) => TenantPrefix() + $"WorkflowChangeToken:{definitionId}";
///
public async Task EvictWorkflowDefinitionAsync(string definitionId, CancellationToken cancellationToken = default)
@@ -45,4 +46,10 @@ public async Task EvictWorkflowDefinitionAsync(string definitionId, Cancellation
var changeTokenKey = CreateWorkflowDefinitionChangeTokenKey(definitionId);
await cache.TriggerTokenAsync(changeTokenKey, cancellationToken);
}
+
+ private string TenantPrefix()
+ {
+ var tenantId = tenantAccessor.TenantId;
+ return string.IsNullOrEmpty(tenantId) ? string.Empty : $"{tenantId}:";
+ }
}
\ No newline at end of file