< Summary

Information
Class: Elsa.Workflows.Management.Services.WorkflowDefinitionCacheManager
Assembly: Elsa.Workflows.Management
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Workflows.Management/Services/WorkflowDefinitionCacheManager.cs
Line coverage
93%
Covered lines: 15
Uncovered lines: 1
Coverable lines: 16
Total lines: 55
Line coverage: 93.7%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Workflows.Management/Services/WorkflowDefinitionCacheManager.cs

#LineLine coverage
 1using Elsa.Caching;
 2using Elsa.Common.Models;
 3using Elsa.Common.Multitenancy;
 4using Elsa.Workflows.Management.Filters;
 5
 6namespace Elsa.Workflows.Management.Services;
 7
 8/// <inheritdoc />
 39public class WorkflowDefinitionCacheManager(ICacheManager cache, IHasher hasher, ITenantAccessor tenantAccessor) : IWork
 10{
 11    /// <inheritdoc />
 239612    public ICacheManager Cache => cache;
 13
 14    /// <inheritdoc />
 215    public string CreateWorkflowDefinitionVersionCacheKey(string definitionId, VersionOptions versionOptions) => TenantP
 16
 17    /// <inheritdoc />
 18    public string CreateWorkflowDefinitionFilterCacheKey(WorkflowDefinitionFilter filter)
 19    {
 71020        var hash = hasher.Hash(filter);
 71021        return TenantPrefix() + $"WorkflowDefinition:{hash}";
 22    }
 23
 24    /// <inheritdoc />
 3525    public string CreateWorkflowVersionCacheKey(string definitionId, VersionOptions versionOptions) => TenantPrefix() + 
 26
 27    /// <inheritdoc />
 122528    public string CreateWorkflowVersionCacheKey(string definitionVersionId) => TenantPrefix() + $"Workflow:{definitionVe
 29
 30    /// <inheritdoc />
 31    public string CreateWorkflowFilterCacheKey(WorkflowDefinitionFilter filter)
 32    {
 42533        var hash = hasher.Hash(filter);
 42534        return TenantPrefix() + $"Workflow:{hash}";
 35    }
 36
 37    /// <inheritdoc />
 038    public string CreateWorkflowDefinitionVersionCacheKey(string definitionVersionId) => TenantPrefix() + $"WorkflowDefi
 39
 40    /// <inheritdoc />
 221741    public string CreateWorkflowDefinitionChangeTokenKey(string definitionId) => TenantPrefix() + $"WorkflowChangeToken:
 42
 43    /// <inheritdoc />
 44    public async Task EvictWorkflowDefinitionAsync(string definitionId, CancellationToken cancellationToken = default)
 45    {
 155546        var changeTokenKey = CreateWorkflowDefinitionChangeTokenKey(definitionId);
 155547        await cache.TriggerTokenAsync(changeTokenKey, cancellationToken);
 155548    }
 49
 50    private string TenantPrefix()
 51    {
 461452        var tenantId = tenantAccessor.TenantId;
 461453        return string.IsNullOrEmpty(tenantId) ? string.Empty : $"{tenantId}:";
 54    }
 55}