public virtual Execution <TContext> ResumeFrom( TContext context, string node, IActivityInputProvider inputProvider) { var execution = m_Persister.Load(context); var executor = new ResumeFromWorkflowExecutor <TContext>( execution, context, this, m_ActivityFactory, m_ExecutionObserver, inputProvider); try { Accept(executor, node); } catch (Exception e) { execution.Error = e.ToString(); execution.State = WorkflowState.Corrupted; } m_Persister.Save(context, execution); return(execution); }
public ActivityResult Execute( Guid activityExecutionId, IActivityFactory factory, TContext context, IActivityInputProvider inputProvider, out object activityOutput, Action <object> beforeExecute) { IActivity <TInput, TOutput, TFailOutput> activity = null; try { activity = m_ActivityCreation(factory); object actout = null; TInput activityInput = null; try { if (inputProvider != null) { activityInput = inputProvider.GetInput <TInput>(); } if (activityInput == null) { activityInput = m_GetActivityInput(context); } beforeExecute(activity.IsInputSerializable ? activityInput : null); } catch (Exception e) { beforeExecute("Failed to get activity input: " + e); throw; } var result = activity.Execute( activityExecutionId, activityInput, output => { actout = output; m_ProcessOutput(context, output); }, output => { actout = output; m_ProcessFailOutput(context, output); }); activityOutput = actout; return(result); } finally { if (activity != null) { factory.Release(activity); } } }
public ActivityResult Execute( Guid activityExecutionId, IActivityFactory factory, TContext context, IActivityInputProvider inputProvider, out object activityOutput, Action <object> beforeExecute) { beforeExecute(null); activityOutput = null; return(ActivityResult.Succeeded); }
public ResumeFromWorkflowExecutor( Execution execution, TContext context, Workflow <TContext> workflow, IActivityFactory factory, IExecutionObserver observer, IActivityInputProvider inputProvider) : base( execution, context, workflow, factory, observer) { m_InputProvider = inputProvider; }
public ResumeFromWorkflowExecutor( Execution <TContext> execution, TContext context, INodesResolver <TContext> nodes, IActivityFactory factory, IExecutionObserver observer, IActivityInputProvider inputProvider) : base( execution, context, nodes, factory, observer) { m_InputProvider = inputProvider; }