private void Handle(ExecutionPointerExitedEvent evt)
        {
            var pointer = GetExecutionPointer(evt.ExecutionPathId, evt.ExecutionPointerId);

            pointer.IsActive = false;
            Version          = evt.Version;
            UpdateDateTime   = evt.ExitDateTime;
        }
        public void CompleteBoundaryEvts(string pathId, List <string> evts)
        {
            var path     = GetExecutionPath(pathId);
            var pointers = path.ActivePointers.Where(p => evts.Contains(p.FlowNodeId));

            foreach (var pointer in pointers)
            {
                var evt = new ExecutionPointerExitedEvent(Guid.NewGuid().ToString(), AggregateId, Version + 1, pointer.ExecutionPathId, pointer.Id, DateTime.UtcNow);
                Handle(evt);
            }
        }