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() }); }