Files
KArtSell.Aegis/docs/Design/kbx-foundation-v60-status-canonical-contract-hardening/backend/Shared/Operations/WorkItemActionRegistry.cs
T
kjh2064 3f293d8aa8
deploy / deploy (push) Successful in 1m52s
deploy / notify (push) Successful in 1s
V13-FE-006: consolidate approved UI and contract hardening
2026-08-13 02:41:00 +09:00

16 lines
566 B
C#

namespace Shared.Operations;
public interface IWorkItemActionHandler
{
string Key { get; }
Task ExecuteAsync(string tenantId, string actorId, Guid workItemId, CancellationToken ct);
}
public sealed class WorkItemActionRegistry(IEnumerable<IWorkItemActionHandler> handlers)
{
private readonly IReadOnlyDictionary<string, IWorkItemActionHandler> _handlers =
handlers.ToDictionary(x => x.Key, StringComparer.OrdinalIgnoreCase);
public bool TryGet(string key, out IWorkItemActionHandler? handler) => _handlers.TryGetValue(key, out handler);
}