/// <summary> /// 添加决策表 /// </summary> /// <param name="model"></param> /// <returns></returns> public JsonResult AddDecisionMatrix(BizRuleDecisionMatrixViewModel model) { return(ExecuteFunctionRun(() => { ActionResult result = new ActionResult(false, ""); BizRuleTable Rule = Engine.BizBus.GetBizRule(model.RuleCode);//业务规则 if (string.IsNullOrEmpty(model.Code)) { result.Message = "msgGlobalString.InvalidCode"; return Json(result); } if (Rule.GetDecisionMatrix(model.Code) != null) { result.Message = "msgGlobalString.CodeExisted"; return Json(result); } //决策表必须以字母开始,不让创建到数据库表字段时报错 System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex("^[a-zA-Z\\u4e00-\\u9fa5][0-9a-zA-Z\\u4e00-\\u9fa5_]*$"); if (!regex.Match(model.Code).Success) { result.Success = false; result.Message = "EditBizObjectSchemaProperty.Msg4"; return Json(result); } //决策表名称不能含有特殊字符 if (!regex.Match(model.DisplayName).Success) { result.Success = false; result.Message = "msgGlobalString.NameInValid"; return Json(result); } OThinker.H3.BizBus.BizRule.BizRuleDecisionMatrix matrix = OThinker.H3.BizBus.BizRule.DecisionMatrixFactory.Create( (DecisionMatrixType)Enum.Parse(typeof(DecisionMatrixType), model.DecisionMatrixType), model.Code); matrix.DisplayName = model.DisplayName; matrix.Description = model.Description; matrix.DecisionMatrixScope = (DecisionMatrixScope)Enum.Parse(typeof(DecisionMatrixScope), model.Scope); if (!Rule.AddDecisionMatrix(matrix)) { result.Message = "msgGlobalString.SaveFailed"; return Json(result); } if (!this.Engine.BizBus.UpdateBizRule(Rule)) { result.Message = "msgGlobalString.SaveFailed"; return Json(result); } result.Success = true; result.Message = "msgGlobalString.SaveSucced"; return Json(result); })); }
/// <summary> /// 加载决策表信息 /// </summary> /// <param name="ruleCode"></param> /// <param name="matrixCode"></param> /// <returns></returns> public JsonResult LoadDecisionMatrixInfo(string ruleCode, string matrixCode) { return(ExecuteFunctionRun(() => { BizRuleTable Rule = Engine.BizBus.GetBizRule(ruleCode); BizRuleDecisionMatrix DecisionMatrix = Rule.GetDecisionMatrix(matrixCode); if (DecisionMatrix == null) { return null; } BizRuleDecisionMatrixViewModel model = new BizRuleDecisionMatrixViewModel(); model.ObjectID = DecisionMatrix.GetHashCode().ToString();//判断是否新增使用,可随便赋值 model.Code = DecisionMatrix.Code; model.RuleCode = ruleCode; model.RowExecutionType = DecisionMatrix.RowExecutionType.ToString(); model.ColumnExecutionType = DecisionMatrix.ColumnExecutionType.ToString(); model.DisplayName = DecisionMatrix.DisplayName; model.Description = DecisionMatrix.Description; model.DecisionMatrixType = DecisionMatrix.MatrixType.ToString(); model.Scope = DecisionMatrix.DecisionMatrixScope.ToString(); switch (DecisionMatrix.MatrixType) { case DecisionMatrixType.Script: model.ResultField = ""; break; case DecisionMatrixType.SelectiveArray: model.ResultField = ((SelectiveArrayDecisionMatrix)DecisionMatrix).ResultElementData; break; case DecisionMatrixType.SortedArray: model.ResultField = ((SortedArrayDecisionMatrix)DecisionMatrix).ResultElementData; break; default: throw new NotImplementedException(); } return Json(model, JsonRequestBehavior.AllowGet); })); }
/// <summary> /// 更新决策表 /// </summary> /// <param name="model"></param> /// <returns></returns> public JsonResult EditDecisionMatrix(BizRuleDecisionMatrixViewModel model) { return(ExecuteFunctionRun(() => { ActionResult result = new ActionResult(false, ""); BizRuleTable Rule = Engine.BizBus.GetBizRule(model.RuleCode);//业务规则 if (string.IsNullOrEmpty(model.Code)) { result.Message = "msgGlobalString.InvalidCode"; return Json(result); } BizRuleDecisionMatrix matrix = Rule.GetDecisionMatrix(model.Code);//决策表 //决策表名称不能含有特殊字符 System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex("^[a-zA-Z\\u4e00-\\u9fa5][0-9a-zA-Z\\u4e00-\\u9fa5_]*$"); if (!regex.Match(model.DisplayName).Success) { result.Success = false; result.Message = "msgGlobalString.NameInValid"; return Json(result); } matrix.DisplayName = model.DisplayName; matrix.Description = model.Description; //matrix.MatrixType = (DecisionMatrixType)Enum.Parse(typeof(DecisionMatrixType), model.DecisionMatrixType); matrix.RowExecutionType = (ExecutionType)Enum.Parse(typeof(ExecutionType), model.RowExecutionType); matrix.ColumnExecutionType = (ExecutionType)Enum.Parse(typeof(ExecutionType), model.ColumnExecutionType); matrix.DecisionMatrixScope = (DecisionMatrixScope)Enum.Parse(typeof(DecisionMatrixScope), model.Scope); // 保存结果的字段 switch (matrix.MatrixType) { case DecisionMatrixType.Script: break; case DecisionMatrixType.SelectiveArray: ((SelectiveArrayDecisionMatrix)matrix).ResultElementData = model.ResultField; break; case DecisionMatrixType.SortedArray: ((SortedArrayDecisionMatrix)matrix).ResultElementData = model.ResultField; break; default: throw new NotImplementedException(); } bool flag = this.Engine.BizBus.UpdateBizRule(Rule); if (flag) { result.Success = true; result.Message = "msgGlobalString.SaveSucced"; } else { result.Success = false; result.Message = "msgGlobalString.SaveFailed"; } return Json(result); })); }