public void AssignValue(ParameterManager processParameterManager, ParameterManager actionInParameterManager)
        {
            try
            {
                switch (ParameterBindType)
                {
                case ParameterBindType.ActionProcessBasicParameterBind:
                    /*StepAction.ActionInParameterManager*/
                    actionInParameterManager.SetBasicParamValue(ActionParameterName,
                                                                processParameterManager.GetBasicParam(ProcessParameterName).GetValue());
                    break;

                case ParameterBindType.ActionConstBasicParameterBind:
                    /*StepAction.ActionInParameterManager*/
                    actionInParameterManager[ActionParameterName].SetValueInString(ConstValueString);
                    break;

                case ParameterBindType.ActionProcessListParameterBind:
                    /*StepAction.ActionInParameterManager*/
                    actionInParameterManager.GetListParam(ActionParameterName)
                    .Replace(processParameterManager.GetListParam(ProcessParameterName));
                    /*ProcessInstance.ProcessParameterManager*/

                    break;

                case ParameterBindType.ActionProcessDictionaryParameterBind:
                    /*StepAction.ActionInParameterManager*/
                    actionInParameterManager.GetDictionaryParam(ActionParameterName).Replace(processParameterManager.GetDictionaryParam(ProcessParameterName));
                    break;

                case ParameterBindType.ActionProcessDictionaryBasicParameterBind:
                    break;

                case ParameterBindType.ActionProcessBasicDictionaryParameterBind:
                    break;

                case ParameterBindType.InvalidBind:
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
            catch (Exception e)
            {
                throw new InvalidOperationException($"InParameterBind数据赋值失败,{e.Message}");
            }
        }
Esempio n. 2
0
        /// <summary>
        ///     判断下一步骤号
        ///     Edit by ZSY 2017年6月3日
        /// </summary>
        /// <param name="parameterManager"></param>
        /// <returns>返回下一步骤号,如果是0为不满足条件</returns>
        public short GetNextStepId(ParameterManager parameterManager)
        {
            short nextStepId = 0; // David 2017年7月19日12:38:22

            if (_checkType == StepCheckType.Parameter)
            {
                //参数判断
                var basicParameter = parameterManager.GetBasicParam(_parameter.Name);
                if (Tag.ValueEqual(basicParameter.GetValue(), _value)) // maybe wrong
                {
                    nextStepId = _nextStepId;
                }
            }
            else
            {
                //条件判断
                Log.Debug("执行条件判断");
                if (!_holding)
                {
                    if (_condition != null)
                    {
                        if (_condition.CheckReady())
                        {
                            nextStepId = _nextStepId;
                            _holding   = true;
                        }
                    }
                }
                else
                {
                    nextStepId = _nextStepId;
                }
            }

            return(nextStepId);
        }