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._flowConditions.ContainsKey(k)) { throw new Exception("!no flow cond.."); } _pd.SetTaskInstanceInfo(ti, ctx); return(_pd._flowConditions[k]()); }
protected void flow_condition(Func <bool> cond, string condString) { if (_curFlow != null) { _curFlow.InputCondition = condString; _flowConditions[DslUtil.FlowConditionKey(_currentCompositeTask.Id, _curFlow.From, _curFlow.To)] = cond; } else { throw new Exception(); } }