private ParamObject[] GetParamArray(ArrayList arrParams) { ParamObject[] result = null; if (arrParams != null) { result = new ParamObject[arrParams.Count]; for (int i = 0; i < arrParams.Count; i++) { EXP_TreeNode node = (EXP_TreeNode)arrParams[i]; result[i] = new ParamObject(VExp(node), node._Position); } } return(result); }
private ParamObject[] GetParamArray(ArrayList arrParams) { ParamObject[] result = null; if (arrParams != null) { result = new ParamObject[arrParams.Count]; for (int i = 0; i < arrParams.Count; i++) { EXP_TreeNode node = (EXP_TreeNode)arrParams[i]; result[i] = new ParamObject(VExp(node), node._Position); } } return result; }
private static object DoUserFunction(string strFuncName, ParamObject[] arrParams, ParseExpression parseObj) { object oValue = null; switch (strFuncName.ToLower()) { case "organizations": case "users": case "groups": oValue = strFuncName.ToUpper(); break; //人员级别判定 case "userrank": ExceptionHelper.TrueThrow<ApplicationException>(arrParams.Length != 2, "函数" + strFuncName + "参数个数有误!"); if (arrParams.Length == 2) { //string oValue = UserRank(AddDoubleQuotationMark(arrParams[0].Value.ToString()), arrParams[1].Value.ToString()); } break; //当前人员Guid case "curuserid": oValue = "001416f3-f108-454e-9033-62b5a300e347"; break; //当前人员级别 case "curuserrank": oValue = "NAVVY_U"; break; //本关区 case "curcustomsscope": //oValue = ObjectID(arrParams[0].Value.ToString()); break; //本部门 case "curdepartscope": //oValue = CurObjetBelongTo(arrParams[0].Value.ToString()); break; //自定机构服务范围 case "userdefinescope": //oValue = CurRankLevel(); break; //人员级别名称 case "userrankname": oValue = UserRankName(arrParams[0].Value.ToString()); break; //得到表达式中对人员级别的限定信息 case "getuserrank": oValue = GetUserRank(arrParams[0].Value.ToString()); break; //属于某对象 case "belongto": oValue = true; break; //得到表达式中对人员所属的限定信息 case "getbelongto": oValue = GetBelongTo(arrParams[0].Value.ToString()); break; default: ExceptionHelper.TrueThrow<ApplicationException>(true, "不存在函数:" + strFuncName); break; } return oValue; }
/// <summary> /// 校验用户自定义表达式 /// </summary> /// <param name="strFuncName">函数名称</param> /// <param name="arrParams">函数中使用的参数组</param> /// <param name="parseObj">表达解析式</param> /// <returns>用户自定义表达式的解析结果</returns> public object CheckUserFunction(string strFuncName, ParamObject[] arrParams, ParseExpression parseObj) { return DoUserFunction(strFuncName, arrParams, parseObj); }