Example #1
0
        public WorkflowInstance ToInstance()
        {
            var activities = Activities.ToDictionary(x => x.Id, x => x.ToInstance());

            return(new WorkflowInstance
            {
                Id = Id,
                DefinitionId = Definition.DefinitionId,
                Version = Definition.Version,
                CorrelationId = CorrelationId,
                Status = Status,
                CreatedAt = CreatedAt,
                StartedAt = StartedAt,
                FinishedAt = FinishedAt,
                FaultedAt = FaultedAt,
                AbortedAt = AbortedAt,
                Activities = activities,
                Scope = Scope,
                Input = Input,

                BlockingActivities = new HashSet <BlockingActivity>(
                    BlockingActivities.Select(x => new BlockingActivity(x.Id, x.Type)),
                    new BlockingActivityEqualityComparer()
                    ),

                ExecutionLog = ExecutionLog.ToList(),
                Fault = Fault?.ToInstance()
            });
        }