< Summary

Information
Class: Elsa.Dashboard.Abstractions.Models.DashboardRecentActivityItem
Assembly: Elsa.Dashboard.Abstractions
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Dashboard.Abstractions/Models/DashboardModels.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 10
Coverable lines: 10
Total lines: 244
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_InstanceId()100%210%
get_DefinitionId()100%210%
get_WorkflowName()100%210%
get_Status()100%210%
get_SubStatus()100%210%
get_IncidentCount()100%210%
get_Duration()100%210%
get_CreatedAt()100%210%
get_UpdatedAt()100%210%
get_FinishedAt()100%210%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Dashboard.Abstractions/Models/DashboardModels.cs

#LineLine coverage
 1namespace Elsa.Dashboard.Abstractions.Models;
 2
 3public record DashboardQuery(string? Range = null, bool IncludeSystem = false);
 4
 5public record DashboardOverview
 6{
 7    public DashboardCapabilityStatus Capability { get; init; } = DashboardCapabilityStatus.Available;
 8    public string? BackendName { get; init; }
 9    public string? EnvironmentName { get; init; }
 10    public DashboardRuntimeStatus Runtime { get; init; } = new();
 11    public DashboardWorkflowInstanceMetrics WorkflowInstances { get; init; } = new();
 12    public DashboardDiagnosticsSummary Diagnostics { get; init; } = new();
 13    public IReadOnlyCollection<DashboardMetricCard> Metrics { get; init; } = [];
 14    public IReadOnlyCollection<DashboardPanelSummary> Panels { get; init; } = [];
 15    public string AppliedRange { get; init; } = DashboardRangeKeys.TwentyFourHours;
 16    public DateTimeOffset From { get; init; }
 17    public DateTimeOffset To { get; init; }
 18}
 19
 20public record DashboardCapabilityStatus
 21{
 22    public static DashboardCapabilityStatus Available { get; } = new("Available");
 23    public static DashboardCapabilityStatus NotInstalled { get; } = new("NotInstalled");
 24    public static DashboardCapabilityStatus Unauthorized { get; } = new("Unauthorized");
 25    public static DashboardCapabilityStatus Unavailable { get; } = new("Unavailable");
 26
 27    public DashboardCapabilityStatus(string status, string? reason = null)
 28    {
 29        Status = status;
 30        Reason = reason;
 31    }
 32
 33    public string Status { get; init; }
 34    public string? Reason { get; init; }
 35}
 36
 37public record DashboardRuntimeStatus
 38{
 39    public string Status { get; init; } = DashboardRuntimeStatusKeys.Unavailable;
 40    public bool IsAcceptingWork { get; init; }
 41    public int ActiveExecutionCycleCount { get; init; }
 42    public int IngressSourceCount { get; init; }
 43    public int FailedIngressSourceCount { get; init; }
 44    public DateTimeOffset? PausedAt { get; init; }
 45    public DateTimeOffset? DrainStartedAt { get; init; }
 46    public string? Reason { get; init; }
 47}
 48
 49public record DashboardWorkflowInstanceMetrics
 50{
 51    public long Running { get; init; }
 52    public long Completed { get; init; }
 53    public long Faulted { get; init; }
 54    public long Suspended { get; init; }
 55    public long Interrupted { get; init; }
 56    public long IncidentBearing { get; init; }
 57    public TimeSpan? AverageDuration { get; init; }
 58}
 59
 60public record DashboardDiagnosticsSummary
 61{
 62    public DashboardStructuredLogSummary StructuredLogs { get; init; } = new();
 63    public DashboardConsoleLogSummary ConsoleLogs { get; init; } = new();
 64}
 65
 66public record DashboardStructuredLogSummary
 67{
 68    public DashboardCapabilityStatus Capability { get; init; } = DashboardCapabilityStatus.NotInstalled;
 69    public int SourceCount { get; init; }
 70    public int StaleSourceCount { get; init; }
 71    public int RecentErrorOrCriticalCount { get; init; }
 72    public long DroppedWriteCount { get; init; }
 73    public long DroppedEventCount { get; init; }
 74}
 75
 76public record DashboardConsoleLogSummary
 77{
 78    public DashboardCapabilityStatus Capability { get; init; } = DashboardCapabilityStatus.NotInstalled;
 79    public int SourceCount { get; init; }
 80    public int StaleSourceCount { get; init; }
 81    public int RecentStderrCount { get; init; }
 82    public long DroppedLineCount { get; init; }
 83}
 84
 85public record DashboardMetricCard
 86{
 87    public string Id { get; init; } = null!;
 88    public string Label { get; init; } = null!;
 89    public string? Value { get; init; }
 90    public string? Caption { get; init; }
 91    public string? Icon { get; init; }
 92    public string? Color { get; init; }
 93    public DashboardNavigationTarget? Navigation { get; init; }
 94    public int Order { get; init; }
 95}
 96
 97public record DashboardPanelSummary
 98{
 99    public string Id { get; init; } = null!;
 100    public string Title { get; init; } = null!;
 101    public string? Summary { get; init; }
 102    public DashboardCapabilityStatus Capability { get; init; } = DashboardCapabilityStatus.Available;
 103    public DashboardNavigationTarget? Navigation { get; init; }
 104    public int Order { get; init; }
 105}
 106
 107public record DashboardNavigationTarget
 108{
 109    public string Kind { get; init; } = null!;
 110    public string? Target { get; init; }
 111    public string? Label { get; init; }
 112}
 113
 114public record DashboardFinding
 115{
 116    public string Id { get; init; } = null!;
 117    public string Severity { get; init; } = DashboardFindingSeverity.Info;
 118    public string Message { get; init; } = null!;
 119    public string? TargetKind { get; init; }
 120    public string? Target { get; init; }
 121    public int Priority { get; init; }
 122}
 123
 124public record DashboardNeedsAttentionResponse
 125{
 126    public IReadOnlyCollection<DashboardFinding> Findings { get; init; } = [];
 127    public DashboardCapabilityStatus Capability { get; init; } = DashboardCapabilityStatus.Available;
 128    public string AppliedRange { get; init; } = DashboardRangeKeys.TwentyFourHours;
 129}
 130
 131public record DashboardTrendRequest
 132{
 133    public string? Range { get; init; }
 134    public string? Granularity { get; init; }
 135    public bool IncludeSystem { get; init; }
 136}
 137
 138public record DashboardTrendResponse
 139{
 140    public IReadOnlyCollection<DashboardTrendBucket> Buckets { get; init; } = [];
 141    public string AppliedRange { get; init; } = DashboardRangeKeys.TwentyFourHours;
 142    public string Granularity { get; init; } = DashboardTrendGranularity.Hour;
 143    public DateTimeOffset From { get; init; }
 144    public DateTimeOffset To { get; init; }
 145}
 146
 147public record DashboardTrendBucket
 148{
 149    public DateTimeOffset From { get; init; }
 150    public DateTimeOffset To { get; init; }
 151    public long CreatedOrStarted { get; init; }
 152    public long Finished { get; init; }
 153    public long Faulted { get; init; }
 154    public long Suspended { get; init; }
 155    public long IncidentBearing { get; init; }
 156}
 157
 158public record DashboardRecentActivityItem
 159{
 0160    public string InstanceId { get; init; } = null!;
 0161    public string DefinitionId { get; init; } = null!;
 0162    public string? WorkflowName { get; init; }
 0163    public string Status { get; init; } = null!;
 0164    public string SubStatus { get; init; } = null!;
 0165    public int IncidentCount { get; init; }
 0166    public TimeSpan? Duration { get; init; }
 0167    public DateTimeOffset CreatedAt { get; init; }
 0168    public DateTimeOffset? UpdatedAt { get; init; }
 0169    public DateTimeOffset? FinishedAt { get; init; }
 170}
 171
 172public record DashboardRecentActivityResponse
 173{
 174    public IReadOnlyCollection<DashboardRecentActivityItem> Items { get; init; } = [];
 175    public string AppliedRange { get; init; } = DashboardRangeKeys.TwentyFourHours;
 176    public DateTimeOffset From { get; init; }
 177    public DateTimeOffset To { get; init; }
 178}
 179
 180public record DashboardWorkflowHotspotsRequest
 181{
 182    public string? Range { get; init; }
 183    public string Metric { get; init; } = DashboardHotspotMetric.Faults;
 184    public int Take { get; init; } = 10;
 185    public bool IncludeSystem { get; init; }
 186}
 187
 188public record DashboardWorkflowHotspotsResponse
 189{
 190    public IReadOnlyCollection<DashboardHotspot> Items { get; init; } = [];
 191    public string AppliedRange { get; init; } = DashboardRangeKeys.TwentyFourHours;
 192    public string Metric { get; init; } = DashboardHotspotMetric.Faults;
 193    public DateTimeOffset From { get; init; }
 194    public DateTimeOffset To { get; init; }
 195}
 196
 197public record DashboardHotspot
 198{
 199    public string DefinitionId { get; init; } = null!;
 200    public string? WorkflowName { get; init; }
 201    public long Value { get; init; }
 202    public TimeSpan? AverageDuration { get; init; }
 203}
 204
 205public static class DashboardRangeKeys
 206{
 207    public const string OneHour = "1h";
 208    public const string TwentyFourHours = "24h";
 209    public const string SevenDays = "7d";
 210}
 211
 212public static class DashboardRuntimeStatusKeys
 213{
 214    public const string AcceptingWork = "AcceptingWork";
 215    public const string Paused = "Paused";
 216    public const string Draining = "Draining";
 217    public const string Unavailable = "Unavailable";
 218}
 219
 220public static class DashboardTrendGranularity
 221{
 222    public const string Minute = "minute";
 223    public const string Hour = "hour";
 224    public const string Day = "day";
 225}
 226
 227public static class DashboardFindingSeverity
 228{
 229    public const string Info = "Info";
 230    public const string Warning = "Warning";
 231    public const string Error = "Error";
 232    public const string Critical = "Critical";
 233    public const string Success = "Success";
 234}
 235
 236public static class DashboardHotspotMetric
 237{
 238    public const string Faults = "Faults";
 239    public const string Executions = "Executions";
 240    public const string Incidents = "Incidents";
 241    public const string Duration = "Duration";
 242}
 243
 244public record DashboardRange(string Key, DateTimeOffset From, DateTimeOffset To);