using IwbZero.IocNamed; using IwbZero.IwbBase; using IwbZero.ToolCommon.LogHelpers; using WeEngine.Components.InterfaceFactory; using WeEngine.ComponentInfo; namespace WeEngine.Components.Statements { /// /// 检验条件 /// [IocNamed(CompStmtType.CheckCondition)] public class CheckConditionStatement : IStatementRunner { public bool Run(ComponentRunner runner, IwbXmlNode poStatement) { this.LogDebug($"============[开始执行事务]====>[检验条件]======>{runner.CurrentNode.NodePath}"); var flag = false; string expression = poStatement.GetChildValue("Condition"); if (expression != "") { flag = runner.EvaluateBool(expression); } var variable = new IwbRtVariable(DefaultVariable.RunValidate).SetValue(flag.ToString()); if (runner.Variables.ContainsKey(DefaultVariable.RunValidate)) { runner.Variables[DefaultVariable.RunValidate] = variable; } else { runner.Variables.Add(DefaultVariable.RunValidate, variable); } this.LogDebug($"============[执行事务完成]====>[检验条件]======>{flag}"); return flag; } } }