public bool EvalFlowCondition(TaskInstance ti, ProcessModel.FlowDef fd, ITaskExecutionContext ctx) { _pd.SetTaskInstanceInfo(ti, ctx); string k = DslUtil.FlowConditionKey(fd.Parent.Id, fd.From, fd.To); if (!_pd._conds.ContainsKey(k)) { throw new Exception("!no flow cond.."); } _pd.SetTaskInstanceInfo(ti, ctx); return(_pd._conds[k]()); }
protected void GenerateScript(CompositeTaskDef ct) { GenerateBaseTaskScripts(ct); foreach (var fl in ct.Flows) { if (!string.IsNullOrEmpty(fl.InputCondition)) { GenCondition(DslUtil.FlowConditionKey(ct.Id, fl.From, fl.To), fl.InputCondition); } } foreach (var t in ct.Tasks) { GenerateScript(t); } }