using Elsa.Caching; using Elsa.Http.Contracts; namespace Elsa.Http.Services; /// public class HttpWorkflowsCacheManager(ICacheManager cache) : IHttpWorkflowsCacheManager { /// public ICacheManager Cache => cache; /// public async Task EvictWorkflowAsync(string workflowDefinitionId, CancellationToken cancellationToken = default) { var changeTokenKey = GetWorkflowChangeTokenKey(workflowDefinitionId); await cache.TriggerTokenAsync(changeTokenKey, cancellationToken); } /// public async Task EvictTriggerAsync(string bookmarkHash, CancellationToken cancellationToken = default) { var changeTokenKey = GetTriggerChangeTokenKey(bookmarkHash); await cache.TriggerTokenAsync(changeTokenKey, cancellationToken); } /// public string GetWorkflowChangeTokenKey(string workflowDefinitionId) => $"{GetType().FullName}:workflow:{workflowDefinitionId}:changeToken"; /// public string GetTriggerChangeTokenKey(string bookmarkHash) => $"{GetType().FullName}:trigger:{bookmarkHash}:changeToken"; }