elsa-core/src/clients/Elsa.Client/Models/WorkflowInstance.cs

49 lines
2.3 KiB
C#
Raw Normal View History

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 Newtonsoft.Json.Linq;
2020-11-12 22:45:18 +00:00
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();
ScheduledActivities = new SimpleStack<ScheduledActivity>();
Scopes = new SimpleStack<ActivityScope>();
2020-11-12 22:45:18 +00:00
}
[DataMember(Order = 1)] public string Id { get; set; } = default!;
2020-12-16 22:03:08 +00:00
[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 string? Name { get; set; }
[DataMember(Order = 8)] public Instant CreatedAt { get; set; }
[DataMember(Order = 9)] public Instant? LastExecutedAt { get; set; }
[DataMember(Order = 11)] public Instant? FinishedAt { get; set; }
[DataMember(Order = 12)] public Instant? CancelledAt { get; set; }
[DataMember(Order = 13)] public Instant? FaultedAt { get; set; }
[DataMember(Order = 14)] public Variables Variables { get; set; }
[DataMember(Order = 15)] public object? Output { get; set; }
[DataMember(Order = 16)] public IDictionary<string, JObject> ActivityData { get; set; } = new Dictionary<string, JObject>();
2020-11-12 22:45:18 +00:00
[DataMember(Order = 17)]
2020-12-16 22:03:08 +00:00
public HashSet<BlockingActivity> BlockingActivities
2020-11-12 22:45:18 +00:00
{
get => _blockingActivities;
set => _blockingActivities = new HashSet<BlockingActivity>(value, BlockingActivityEqualityComparer.Instance);
}
[DataMember(Order = 18)] public WorkflowFault? Fault { get; set; }
[DataMember(Order = 19)] public SimpleStack<ScheduledActivity> ScheduledActivities { get; set; }
[DataMember(Order = 20)] public SimpleStack<ActivityScope> Scopes { get; set; }
[DataMember(Order = 21)] public ScheduledActivity? CurrentActivity { get; set; }
2020-11-12 22:45:18 +00:00
}
}