private void Handle(FlowNodeInstanceAddedEvent evt) { var instance = new FlowNodeInstance { FlowNodeId = evt.FlowNodeId, EltId = evt.FlowNodeInstanceId }; ElementInstances.Add(instance); Version = evt.Version; UpdateDateTime = evt.CreateDateTime; }
private bool TryAddInstance(string elementId, string pathId, out string instanceId) { var path = GetExecutionPath(pathId); var pointer = path.Pointers.FirstOrDefault(_ => _.FlowNodeId == elementId); if (pointer != null) { var instance = GetActiveInstance(pointer.InstanceFlowNodeId); if (instance != null) { instanceId = instance.EltId; return(false); } } instanceId = Guid.NewGuid().ToString(); var evt = new FlowNodeInstanceAddedEvent(Guid.NewGuid().ToString(), AggregateId, Version + 1, instanceId, elementId, DateTime.UtcNow); Handle(evt); DomainEvents.Add(evt); return(true); }