using IwbZero.IocNamed; using IwbZero.IwbBase; using IwbZero.ToolCommon.LogHelpers; using WeEngine.ComponentInfo; using WeEngine.Components.InterfaceFactory; namespace WeEngine.Components.Statements { /// /// 条件分支 /// [IocNamed(CompStmtType.ConditionalBranching)] public class ConditionalBranchesStatement : IStatementRunner { public bool Run(ComponentRunner runner, IwbXmlNode poStatement) { var flag = false; string childValue = poStatement.GetChildValue("Condition"); this.LogDebug($"============[开始执行事务]====>[条件分支]======>{runner.CurrentNode.NodePath}"); var childNode = poStatement.GetChildNode("Yes"); var node2 = poStatement.GetChildNode("No"); if (childValue == "") { flag= true; }else if (runner.EvaluateBool(childValue)) { flag= runner.RunStatements(childNode.Nodes); } else { flag = runner.RunStatements(node2.Nodes); } this.LogDebug($"============[执行事务完成]====>[条件分支]======>{flag}"); return flag; } } }