< Summary

Information
Class: Elsa.AI.Abstractions.Contracts.IAIAuditSink
Assembly: Elsa.AI.Abstractions
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.AI.Abstractions/Contracts/IAIProposalStore.cs
Line coverage
100%
Covered lines: 3
Uncovered lines: 0
Coverable lines: 3
Total lines: 28
Line coverage: 100%
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

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
RecordManyAsync()100%22100%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.AI.Abstractions/Contracts/IAIProposalStore.cs

#LineLine coverage
 1using Elsa.AI.Abstractions.Models;
 2
 3namespace Elsa.AI.Abstractions.Contracts;
 4
 5public interface IAIConversationStore
 6{
 7    ValueTask<AIConversation?> FindAsync(string id, CancellationToken cancellationToken = default);
 8    ValueTask SaveAsync(AIConversation conversation, CancellationToken cancellationToken = default);
 9}
 10
 11public interface IAITransientConversationStore : IAIConversationStore;
 12
 13public interface IAIProposalStore
 14{
 15    ValueTask<AIProposal?> FindAsync(string id, string? tenantId, CancellationToken cancellationToken = default);
 16    ValueTask SaveAsync(AIProposal proposal, CancellationToken cancellationToken = default);
 17}
 18
 19public interface IAIAuditSink
 20{
 21    ValueTask RecordAsync(AIAuditEvent auditEvent, CancellationToken cancellationToken = default);
 22
 23    async ValueTask RecordManyAsync(IReadOnlyCollection<AIAuditEvent> auditEvents, CancellationToken cancellationToken =
 24    {
 1225        foreach (var auditEvent in auditEvents)
 326            await RecordAsync(auditEvent, cancellationToken);
 327    }
 28}

Methods/Properties

RecordManyAsync()