protected override ActivityResult VisitNode(
     IGraphNode <TContext> node,
     Guid activityExecutionId, out object activityOutput)
 {
     return(node.ActivitySlot.Execute(
                activityExecutionId,
                Factory,
                Context,
                m_InputProvider ?? this,
                out activityOutput,
                activityInput => ExecutionObserver.ActivityStarted(
                    activityExecutionId,
                    node.Name,
                    node.ActivityType,
                    activityInput)));
 }
 protected override ActivityResult VisitNode(
     IGraphNode <TContext> node,
     Guid activityExecutionId,
     out object activityOutput)
 {
     ExecutionObserver.ActivityStarted(
         activityExecutionId,
         node.Name,
         node.ActivityType + " [FAKE]",
         null);
     return(node.ActivitySlot.Complete(
                activityExecutionId,
                Factory,
                Context,
                m_OutputProvider ?? this,
                out activityOutput));
 }