public virtual DecisionImpl CreateDecision() { DecisionImpl decision = new DecisionImpl(_processDefinition); AddNode(decision); return(decision); }
public override void ReadProcessData(XmlElement xmlElement, ProcessDefinitionBuildContext creationContext) { this._nodes = new ListSet(); this._attributes = new ListSet(); this._childBlocks = new ListSet(); base.ReadProcessData(xmlElement, creationContext); IEnumerator iter = xmlElement.GetChildElements("attribute").GetEnumerator(); while (iter.MoveNext()) { AttributeImpl attribute = new AttributeImpl(); attribute.ReadProcessData((XmlElement)iter.Current, creationContext); _attributes.Add(attribute); } iter = xmlElement.GetChildElements("activity-state").GetEnumerator(); while (iter.MoveNext()) { ActivityStateImpl activityState = new ActivityStateImpl(); activityState.ReadProcessData((XmlElement)iter.Current, creationContext); _nodes.Add(activityState); } iter = xmlElement.GetChildElements("process-state").GetEnumerator(); while (iter.MoveNext()) { ProcessStateImpl processState = new ProcessStateImpl(); processState.ReadProcessData((XmlElement)iter.Current, creationContext); _nodes.Add(processState); } iter = xmlElement.GetChildElements("decision").GetEnumerator(); while (iter.MoveNext()) { DecisionImpl decision = new DecisionImpl(); decision.ReadProcessData((XmlElement)iter.Current, creationContext); _nodes.Add(decision); } iter = xmlElement.GetChildElements("concurrent-block").GetEnumerator(); while (iter.MoveNext()) { ConcurrentBlockImpl concurrentBlock = new ConcurrentBlockImpl(); concurrentBlock.ReadProcessData((XmlElement)iter.Current, creationContext); _childBlocks.Add(concurrentBlock); } }
public void ProcessDecision(DecisionImpl decision, FlowImpl flow, DbSession dbSession) { //var delegateParameters = delegationService.ParseConfiguration(decision.DecisionDelegation); //IDecisionHandler decisionHandler = (IDecisionHandler)delegationService.GetDelegate(decision.DecisionDelegation); var attributes = decision.DecisionDelegation.ParseConfiguration(); string transiationName = new EvaluationDecision().Decide(attributes["attribute"].ToString()); TransitionImpl selectedTransition = this.GetTransition(transiationName, decision, dbSession); //// delegate the decision //TransitionImpl selectedTransition = delegationHelper.DelegateDecision(decision.DecisionDelegation, executionContext); //// process the selected transition ProcessTransition(selectedTransition, flow, dbSession); }
public override void ReadProcessData(XmlElement xmlElement, ProcessDefinitionBuildContext creationContext) { this._nodes = new ListSet(); this._attributes = new ListSet(); this._childBlocks = new ListSet(); base.ReadProcessData(xmlElement, creationContext); IEnumerator iter = xmlElement.GetChildElements("attribute").GetEnumerator(); while (iter.MoveNext()) { AttributeImpl attribute = new AttributeImpl(); attribute.ReadProcessData((XmlElement) iter.Current, creationContext); _attributes.Add(attribute); } iter = xmlElement.GetChildElements("activity-state").GetEnumerator(); while (iter.MoveNext()) { ActivityStateImpl activityState = new ActivityStateImpl(); activityState.ReadProcessData((XmlElement) iter.Current, creationContext); _nodes.Add(activityState); } iter = xmlElement.GetChildElements("process-state").GetEnumerator(); while (iter.MoveNext()) { ProcessStateImpl processState = new ProcessStateImpl(); processState.ReadProcessData((XmlElement) iter.Current, creationContext); _nodes.Add(processState); } iter = xmlElement.GetChildElements("decision").GetEnumerator(); while (iter.MoveNext()) { DecisionImpl decision = new DecisionImpl(); decision.ReadProcessData((XmlElement) iter.Current, creationContext); _nodes.Add(decision); } iter = xmlElement.GetChildElements("concurrent-block").GetEnumerator(); while (iter.MoveNext()) { ConcurrentBlockImpl concurrentBlock = new ConcurrentBlockImpl(); concurrentBlock.ReadProcessData((XmlElement) iter.Current, creationContext); _childBlocks.Add(concurrentBlock); } }
public virtual DecisionImpl CreateDecision() { DecisionImpl decision = new DecisionImpl(_processDefinition); AddNode(decision); return decision; }
public void ProcessDecision(DecisionImpl decision, ExecutionContextImpl executionContext,DbSession dbSession) { // trigger actions, scheduled before the decision actually is made delegationService.RunActionsForEvent(EventType.BEFORE_DECISION, decision.Id, executionContext,dbSession); // delegate the decision TransitionImpl selectedTransition = delegationHelper.DelegateDecision(decision.DecisionDelegation, executionContext); // process the selected transition ProcessTransition(selectedTransition, executionContext,dbSession); // trigger actions, scheduled after the decision is made delegationService.RunActionsForEvent(EventType.AFTER_DECISION, decision.Id, executionContext,dbSession); }