Exemplo n.º 1
0
        private void CheckIfSagaStepBehaviorExists(WorkflowDefinition.Node toNode)
        {
            ISagaStepBehavior sagaStepBehavior = _sagaStepBehaviorFactory.GetSagaStepBehavior(toNode.BehaviorModuleKey, toNode.BehaviorKey, toNode.BehaviorVersion, toNode.BehaviorConfiguration, Name);

            if (sagaStepBehavior == null)
            {
                throw new WorkflowStartupException($"Workflow {Name}.{Version} cannot find SagaStepBehavior {toNode.BehaviorKey}.{toNode.BehaviorVersion}");
            }
        }
Exemplo n.º 2
0
        public ISagaStepBehavior GetSagaStepBehaviorForNode(DoubleLinkedDirectedGraph <NodeData, EdgeData> .Node node)
        {
            ISagaStepBehavior sagaStepBehavior = _sagaStepBehaviorFactory.GetSagaStepBehavior(node.NodeData.BehaviorModuleKey, node.NodeData.BehaviorKey, node.NodeData.BehaviorVersion, node.NodeData.BehaviorConfiguration, Name);

            if (sagaStepBehavior == null)
            {
                throw new WorkflowRuntimeException($"Workflow {Name}.{Version} cannot find SagaStepBehavior {node.NodeData.BehaviorKey}.{node.NodeData.BehaviorVersion}");
            }
            else
            {
                return(sagaStepBehavior);
            }
        }
        /// <summary>
        /// Returns the SagaStepBehavior requested and null if
        /// </summary>
        /// <param name="behaviorName"></param>
        /// <param name="version"></param>
        /// <param name="behaviorConfiguration"></param>
        /// <returns></returns>
        public ISagaStepBehavior GetSagaStepBehavior(KeyString behaviorName, VersionNumber version, JsonValue behaviorConfiguration)
        {
            ISagaStepBehavior sagaStepBehavior = _pluginSagaStepBehaviorFactory.GetInstance(behaviorName, version);

            if (sagaStepBehavior != null)
            {
                if (!sagaStepBehavior.SetBehaviorConfiguration(behaviorConfiguration))
                {
                    throw new WorkflowRuntimeException($"The supplied behaviorConfiguration is not valid");
                }
            }
            return(sagaStepBehavior);
        }