2020-11-12 22:45:18 +00:00
|
|
|
|
using System.Collections.Generic;
|
2020-12-10 21:08:53 +00:00
|
|
|
|
using System.Runtime.Serialization;
|
2020-11-12 22:45:18 +00:00
|
|
|
|
using Elsa.Client.Comparers;
|
|
|
|
|
|
using NodaTime;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Elsa.Client.Models
|
|
|
|
|
|
{
|
2020-12-10 21:08:53 +00:00
|
|
|
|
[DataContract]
|
2020-11-12 22:45:18 +00:00
|
|
|
|
public class WorkflowInstance
|
|
|
|
|
|
{
|
2020-12-10 21:08:53 +00:00
|
|
|
|
private HashSet<BlockingActivity> _blockingActivities = new(BlockingActivityEqualityComparer.Instance);
|
|
|
|
|
|
|
2020-11-12 22:45:18 +00:00
|
|
|
|
public WorkflowInstance()
|
|
|
|
|
|
{
|
|
|
|
|
|
Variables = new Variables();
|
2020-11-19 14:14:39 +00:00
|
|
|
|
Activities = new List<ActivityInstance>();
|
|
|
|
|
|
ExecutionLog = new List<ExecutionLogEntry>();
|
2020-11-12 22:45:18 +00:00
|
|
|
|
ScheduledActivities = new Stack<ScheduledActivity>();
|
|
|
|
|
|
PostScheduledActivities = new Stack<ScheduledActivity>();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2020-12-16 22:03:08 +00:00
|
|
|
|
[DataMember(Order = 1)] public string EntityId { get; set; } = default!;
|
|
|
|
|
|
[DataMember(Order = 2)] public string DefinitionId { get; set; } = default!;
|
|
|
|
|
|
[DataMember(Order = 3)] public int Version { get; set; }
|
|
|
|
|
|
[DataMember(Order = 4)] public WorkflowStatus WorkflowStatus { get; set; }
|
|
|
|
|
|
[DataMember(Order = 5)] public string? CorrelationId { get; set; }
|
|
|
|
|
|
[DataMember(Order = 6)] public string? ContextId { get; set; }
|
|
|
|
|
|
[DataMember(Order = 7)] public Instant CreatedAt { get; set; }
|
|
|
|
|
|
[DataMember(Order = 8)] public Instant? LastExecutedAt { get; set; }
|
|
|
|
|
|
[DataMember(Order = 9)] public Instant? LastBurstAt { get; set; }
|
|
|
|
|
|
[DataMember(Order = 10)] public Instant? CompletedAt { get; set; }
|
|
|
|
|
|
[DataMember(Order = 11)] public Variables Variables { get; set; }
|
|
|
|
|
|
[DataMember(Order = 12)] public object? Output { get; set; }
|
|
|
|
|
|
[DataMember(Order = 13)] public ICollection<ActivityInstance> Activities { get; set; }
|
2020-11-12 22:45:18 +00:00
|
|
|
|
|
2020-12-16 22:03:08 +00:00
|
|
|
|
[DataMember(Order = 14)]
|
|
|
|
|
|
public HashSet<BlockingActivity> BlockingActivities
|
2020-11-12 22:45:18 +00:00
|
|
|
|
{
|
|
|
|
|
|
get => _blockingActivities;
|
|
|
|
|
|
set => _blockingActivities = new HashSet<BlockingActivity>(value, BlockingActivityEqualityComparer.Instance);
|
|
|
|
|
|
}
|
2020-12-10 21:08:53 +00:00
|
|
|
|
|
2020-12-16 22:03:08 +00:00
|
|
|
|
[DataMember(Order = 15)] public ICollection<ExecutionLogEntry> ExecutionLog { get; set; }
|
|
|
|
|
|
[DataMember(Order = 16)] public WorkflowFault? Fault { get; set; }
|
|
|
|
|
|
[DataMember(Order = 17)] public Stack<ScheduledActivity> ScheduledActivities { get; set; }
|
|
|
|
|
|
[DataMember(Order = 18)] public Stack<ScheduledActivity> PostScheduledActivities { get; set; }
|
2020-11-12 22:45:18 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|