| | | 1 | | namespace Elsa.Bpmn.Hosting; |
| | | 2 | | |
| | | 3 | | /// <summary> |
| | | 4 | | /// The payload every execution log entry <see cref="BpmnScopeHost"/> projects from a BPMN diagnostic carries. |
| | | 5 | | /// </summary> |
| | | 6 | | /// <remarks> |
| | | 7 | | /// This shape is a compatibility surface: Studio's instance viewer overlay reads it to key a decision back onto |
| | | 8 | | /// the BPMN element — and, for a decision about a sequence flow, the flow — it belongs to, since under Option A |
| | | 9 | | /// only bound work has an activity id. <see cref="Kind"/> carries the diagnostic kind's own enum member name |
| | | 10 | | /// (see <see cref="BpmnDiagnosticEventNames"/>) rather than its integer value, so a <c>Bpmn.Model</c> upgrade that |
| | | 11 | | /// reorders or extends <c>BpmnDiagnosticKind</c> cannot silently change what a reader keyed on the number would see. |
| | | 12 | | /// </remarks> |
| | | 13 | | /// <param name="DiagnosticId">The diagnostic's id in the interpreter's own pinned id stream (<c>diag:N</c>).</param> |
| | | 14 | | /// <param name="ElementId">The BPMN element the diagnostic is about, or <c>null</c> when it names none.</param> |
| | | 15 | | /// <param name="FlowId">The BPMN sequence flow the diagnostic is about, or <c>null</c> when it names none.</param> |
| | | 16 | | /// <param name="TokenId">The token the diagnostic is about, or <c>null</c> when it names none.</param> |
| | | 17 | | /// <param name="Kind">The diagnostic kind's enum member name.</param> |
| | | 18 | | /// <param name="Details">Free-form key/value details the interpreter attached, carried verbatim.</param> |
| | 544 | 19 | | public sealed record BpmnDiagnosticLogPayload( |
| | 20 | 20 | | string DiagnosticId, |
| | 18 | 21 | | string? ElementId, |
| | 9 | 22 | | string? FlowId, |
| | 0 | 23 | | string? TokenId, |
| | 3 | 24 | | string Kind, |
| | 544 | 25 | | IReadOnlyDictionary<string, string> Details); |