private void InitWorkflow() { _runtime = new WorkflowRuntime(); _runtime.WorkflowCompleted += (sender, e) => { if (e.Result != null) { Logger.LogInfo(Message.WorkflowThreadStoppedWithResult, e.Result); } else { Logger.LogInfo(Message.WorkflowThreadStopped); } }; _runtime.WorkflowTerminated += (sender, e) => { Logger.LogError(Message.WorkflowThreadTerminated, e.Reason); WorkflowTerminated.RaiseEvent(this); }; _mainWorkflowInstance = _runtime.CreateWorkflow( s_workflowInstanceId, _config.WorkflowScheme.Uri, _config.WorkflowScheme.XmlSchemas.ToList()); _mainWorkflowInstance.ExecutionContext.ActivityExecutionStarting += ExecutionContext_ActivityExecutionStarting; _mainWorkflowInstance.ExecutionContext.ActivityExecutionFinished += ExecutionContext_ActivityExecutionFinished; var commonActivity = (CommonActivity)_mainWorkflowInstance.ExecutionContext.Scheme.Activities .First(i => i.Value is CommonActivity).Value; commonActivity.InfoOutputStarting += CommonActivity_InfoOutputStarting; }
internal void RaiseWorkflowTerminated(WorkflowInstance wi, string reason) { WorkflowTerminated.RaiseEvent(this, new WorkflowTerminatedEventArgs(wi, reason)); }