using System.Collections.Generic; using Elsa.Client.Comparers; using NodaTime; namespace Elsa.Client.Models { public class WorkflowInstance { private HashSet _blockingActivities = new HashSet(BlockingActivityEqualityComparer.Instance); public WorkflowInstance() { Variables = new Variables(); Activities = new System.Collections.Generic.List(); ExecutionLog = new System.Collections.Generic.List(); ScheduledActivities = new Stack(); PostScheduledActivities = new Stack(); } public int Id { get; set; } public string WorkflowInstanceId { get; set; } = default!; public string WorkflowDefinitionId { get; set; } = default!; public int Version { get; set; } public WorkflowStatus Status { get; set; } public string? CorrelationId { get; set; } public string? ContextId { get; set; } public Instant CreatedAt { get; set; } public Variables Variables { get; set; } public object? Output { get; set; } public ICollection Activities { get; set; } public HashSet BlockingActivities { get => _blockingActivities; set => _blockingActivities = new HashSet(value, BlockingActivityEqualityComparer.Instance); } public ICollection ExecutionLog { get; set; } public WorkflowFault? Fault { get; set; } public Stack ScheduledActivities { get; set; } public Stack PostScheduledActivities { get; set; } } }