protected override void ConfigureDefinition(FlowDefinition <DecisionWithEndFlowRequest, DecisionWithEndFlowResponse> flowDefinition) { var switchValueDecision = FlowValueDecision <string> .NewDefinition() .BindInput(rq => rq.SwitchValue, nameof(DecisionWithEndFlowRequest.StringValue)); var setOutputToX = new FlowActivityDefinition <SetStringFlowValueRequest, SetStringFlowValueResponse>() .SetValue(rq => rq.OutputValue, "X") .BindOutput(rs => rs.Output, nameof(DecisionWithEndFlowResponse.BranchValue)); var setOutputToY = new FlowActivityDefinition <SetStringFlowValueRequest, SetStringFlowValueResponse>() .SetValue(rq => rq.OutputValue, "Y") .BindOutput(rs => rs.Output, nameof(DecisionWithEndFlowResponse.BranchValue)); var setOutputToZ = new FlowActivityDefinition <SetStringFlowValueRequest, SetStringFlowValueResponse>() .SetValue(rq => rq.OutputValue, "Z") .BindOutput(rs => rs.Output, nameof(DecisionWithEndFlowResponse.BranchValue)); flowDefinition .Do("Set_output_to_X", setOutputToX) .Check("Switch_value_1", switchValueDecision) .When("A").End() .When("B").Goto("Set_output_to_Y") .Else().Continue() .Do("Set_output_to_Y", setOutputToY) .Check("Switch_value_2", switchValueDecision) .When("C").Goto("Set_output_to_Z") .Else().End() .Do("Set_output_to_Z", setOutputToZ) ; }
protected override void ConfigureDefinition(FlowDefinition <MockedDecisionFlowRequest, MockedDecisionFlowResponse> flowDefinition) { var intValue = FlowValueDecision <int?> .NewDefinition() .BindInput(rq => rq.SwitchValue, nameof(MockedDecisionFlowRequest.IntValue)); var setOutputToX = new FlowActivityDefinition <SetStringFlowValueRequest, SetStringFlowValueResponse>() .SetValue(rq => rq.OutputValue, "X") .BindOutput(rs => rs.Output, nameof(MockedDecisionFlowResponse.BranchValue)); var setOutputToY = new FlowActivityDefinition <SetStringFlowValueRequest, SetStringFlowValueResponse>() .SetValue(rq => rq.OutputValue, "Y") .BindOutput(rs => rs.Output, nameof(MockedDecisionFlowResponse.BranchValue)); var setOutputToZ = new FlowActivityDefinition <SetStringFlowValueRequest, SetStringFlowValueResponse>() .SetValue(rq => rq.OutputValue, "Z") .BindOutput(rs => rs.Output, nameof(MockedDecisionFlowResponse.BranchValue)); flowDefinition .Check("Int_value", intValue) .When(1).Goto("Set_output_to_X") .When(2).Goto("Set_output_to_Y") .Else().Goto("Set_output_to_Z") .Do("Set_output_to_X", setOutputToX) .End() .Do("Set_output_to_Y", setOutputToY) .End() .Do("Set_output_to_Z", setOutputToZ) .End(); }
protected override void ConfigureDefinition(FlowDefinition <MatchDecisionFlowRequest, MatchDecisionFlowResponse> flowDefinition) { #region Definitions var intValueDecision = FlowValueDecision <int?> .NewDefinition() .BindInput(rq => rq.SwitchValue, nameof(MatchDecisionFlowRequest.IntValue)); var stringValueDecision = FlowValueDecision <string> .NewDefinition() .BindInput(rq => rq.SwitchValue, nameof(MatchDecisionFlowRequest.StringValue)); var setOutputToX = new FlowActivityDefinition <SetStringFlowValueRequest, SetStringFlowValueResponse>() .SetValue(rq => rq.OutputValue, "X") .BindOutput(rs => rs.Output, nameof(MatchDecisionFlowResponse.BranchValue)); var setOutputToY = new FlowActivityDefinition <SetStringFlowValueRequest, SetStringFlowValueResponse>() .SetValue(rq => rq.OutputValue, "Y") .BindOutput(rs => rs.Output, nameof(MatchDecisionFlowResponse.BranchValue)); var setOutputToZa = new FlowActivityDefinition <SetStringFlowValueRequest, SetStringFlowValueResponse>() .SetValue(rq => rq.OutputValue, "ZA") .BindOutput(rs => rs.Output, nameof(MatchDecisionFlowResponse.BranchValue)); var setOutputToZz = new FlowActivityDefinition <SetStringFlowValueRequest, SetStringFlowValueResponse>() .SetValue(rq => rq.OutputValue, "ZZ") .BindOutput(rs => rs.Output, nameof(MatchDecisionFlowResponse.BranchValue)); #endregion flowDefinition .Check("Int_value", intValueDecision) .When(1).Goto("Set_output_to_X") .When(2, 3).Goto("Set_output_to_Y") .Else().Goto("String_value") .Do("Set_output_to_X", setOutputToX) .End() .Do("Set_output_to_Y", setOutputToY) .End() .Check("String_value", stringValueDecision) .When("A").Goto("Set_output_to_ZA") .Else().Continue() .Do("Set_output_to_ZZ", setOutputToZz) .End() .Do("Set_output_to_ZA", setOutputToZa); }
protected override void ConfigureDefinition(FlowDefinition <DecisionBindingAttributesFlowRequest, DecisionBindingAttributesFlowResponse> flowDefinition) { var isDecisionValueTrue = new FlowDecisionDefinition <BindingAttributesDecision, bool>() .SetValue(r => r.DecisionInput1Name, nameof(DecisionBindingAttributesFlowRequest.FlowInput1)) .SetValue(r => r.NamedDecisionInputName, nameof(DecisionBindingAttributesFlowRequest.FlowInput2)); var setFlowOutputToFalse = new FlowActivityDefinition <SetBoolFlowValueRequest, SetBoolFlowValueResponse>() .SetValue(r => r.OutputValue, false) .BindOutput(r => r.Output, nameof(DecisionBindingAttributesFlowResponse.FlowOutput)); var setFlowOutputToTrue = new FlowActivityDefinition <SetBoolFlowValueRequest, SetBoolFlowValueResponse>() .SetValue(r => r.OutputValue, true) .BindOutput(r => r.Output, nameof(DecisionBindingAttributesFlowResponse.FlowOutput)); flowDefinition .Check("Is_decision_value_true", isDecisionValueTrue) .When(true).Goto("Set_flow_output_to_true") .Else().Continue() .Do("Set_flow_output_to_false", setFlowOutputToFalse) .End() .Do("Set_flow_output_to_true", setFlowOutputToTrue); }