/// <summary> /// Starts the specified workflow. /// </summary> /// <param name="workflow">The workflow.</param> public void Start(Models.Domain.Workflow.WorkflowInstance workflow) { Log.Debug($"Start({workflow})"); //TODO: Block concurrent calls to Start/Process? Unloaded.Reset(); Result = new WorkflowResult(); Application = CreateWorkflowApplication(workflow); Application.Run(); }
/// <summary> /// Starts the specified workflow. /// </summary> /// <param name="workflow">The workflow.</param> public void Start(IWorkflow workflow) { Log.DebugFormat("Start({0})", workflow); //TODO: Block concurrent calls to Start/Process? Unloaded.Reset(); Result = new WorkflowResult(); Application = CreateWorkflowApplication(workflow); Application.Run(); }
/// <summary> /// Processes the specified workflow, executing the specified <paramref name="transition"/> with the given <paramref name="request"/> /// </summary> /// <param name="workflow">The workflow.</param> /// <param name="transition">The transition.</param> /// <param name="request">The request.</param> public void Process(IWorkflow workflow, WorkflowTransition transition, WorkflowRequest request) { Log.DebugFormat("Process({0}, {1}, {2})", workflow, transition, request); //TODO: Block concurrent calls to Start/Process? Unloaded.Reset(); Result = new WorkflowResult(); Application = CreateWorkflowApplication(null); if (!CheckForRunnableInstance()) { Application.Load(workflow.WorkflowInstanceId); } else { Application.LoadRunnableInstance(); } Application.ResumeBookmark(transition.Name, request); }
/// <summary> /// Processes the specified workflow, executing the specified <paramref name="transition"/> with the given <paramref name="request"/> /// </summary> /// <param name="workflow">The workflow.</param> /// <param name="transition">The transition.</param> /// <param name="request">The request.</param> public void Process(WorkflowInstance workflow, WorkflowTransition transition, WorkflowRequest request) { Log.Debug($"Process({workflow}, {transition}, {request})"); //TODO: Block concurrent calls to Start/Process? Unloaded.Reset(); Result = new WorkflowResult(); Application = CreateWorkflowApplication(workflow, false); //UnloadApplication(Application); if (!CheckForRunnableInstance()) { Application.Load(workflow.InstanceId); } else { Application.LoadRunnableInstance(); } Application.ResumeBookmark(transition.Name, request); }