public void ChangePriority(RulesetInfoDataMaintain highPriority, RulesetInfoDataMaintain lowPriority) { highPriority.Priority = highPriority.Priority + 1; lowPriority.Priority = lowPriority.Priority - 1; UnitOfWork uow = new UnitOfWork(); ProcessRuleSet ruleset1 = new ProcessRuleSet(); ruleset1.Cdt = highPriority.Cdt; ruleset1.Condition1 = highPriority.Condition1; ruleset1.Condition2 = highPriority.Condition2; ruleset1.Condition3 = highPriority.Condition3; ruleset1.Condition4 = highPriority.Condition4; ruleset1.Condition5 = highPriority.Condition5; ruleset1.Condition6 = highPriority.Condition6; ruleset1.Editor = highPriority.Editor; ruleset1.ID = highPriority.Id; ruleset1.Priority = highPriority.Priority; ruleset1.Udt = highPriority.Udt; ProcessRuleSet ruleset2 = new ProcessRuleSet(); ruleset2.Cdt = lowPriority.Cdt; ruleset2.Condition1 = lowPriority.Condition1; ruleset2.Condition2 = lowPriority.Condition2; ruleset2.Condition3 = lowPriority.Condition3; ruleset2.Condition4 = lowPriority.Condition4; ruleset2.Condition5 = lowPriority.Condition5; ruleset2.Condition6 = lowPriority.Condition6; ruleset2.Editor = lowPriority.Editor; ruleset2.ID = lowPriority.Id; ruleset2.Priority = lowPriority.Priority; ruleset2.Udt = lowPriority.Udt; //若有应用Rule Set List表格中的当前选项或其上一个选项的Rule存在,则删除Model_Process数据表中的所有记录。 if ((processRepository.GetAllRuleByRuleSetID(highPriority.Id) != null && processRepository.GetAllRuleByRuleSetID(highPriority.Id).Count > 0) || (processRepository.GetAllRuleByRuleSetID(lowPriority.Id) != null && processRepository.GetAllRuleByRuleSetID(lowPriority.Id).Count > 0)) { processRepository.DeleteAllModelProcessDefered(uow); } ProcessRuleSet tempRuleSet1 = processRepository.GetRuleSetById(ruleset1.ID); ProcessRuleSet tempRuleSet2 = processRepository.GetRuleSetById(ruleset2.ID); ruleset1.Priority = tempRuleSet2.Priority; ruleset2.Priority = tempRuleSet1.Priority; processRepository.UpdateRuleSetPriorityDefered(uow, ruleset1); processRepository.UpdateRuleSetPriorityDefered(uow, ruleset2); uow.Commit(); }
static bool matchRule(ProcessRule item, ProcessRuleSet ruleSet) { IList<string> ruleValueList = ruleSet.ConditiionValueList; int count = ruleValueList.Count; bool bAllmatched = (count==0? false:true); for (int i=0; i<count;++i) { string ruleValue = ruleValueList[i]; if (string.IsNullOrEmpty(ruleValue)) { bAllmatched = false; break; } if (!checkValue(ruleValue, i, item)) { bAllmatched = false; break; } } return bAllmatched; }
static ProcessRule compareProcessRule(IList<ProcessRule> processRuleList, ProcessRuleSet ruleSet) { ProcessRule ret =null; foreach (ProcessRule item in processRuleList) { if (matchRule(item, ruleSet)) { ret = item; break; } } return ret; }
public void EditAddProcessRuleSet(RulesetInfoDataMaintain singleRuleSet) { //若Rule Set CheckList框中所有被选项与Rule Set List中某个栏位组合完全对应相同,则警示用户,放弃后续操作 //若已有应用当前被选Rule Set的Rule存在,则删除这些Rule,同时删除Model_Process数据表中的所有记录。 ProcessRuleSet ruleset = new ProcessRuleSet(); ruleset.ID = singleRuleSet.Id; ruleset.Priority = singleRuleSet.Id; ruleset.Condition1 = singleRuleSet.Condition1; ruleset.Condition2 = singleRuleSet.Condition2; ruleset.Condition3 = singleRuleSet.Condition3; ruleset.Condition4 = singleRuleSet.Condition4; ruleset.Condition5 = singleRuleSet.Condition5; ruleset.Condition6 = singleRuleSet.Condition6; ruleset.Udt = DateTime.Now; ruleset.Editor = singleRuleSet.Editor; if(processRepository.IFRuleSetIsExists(ruleset)) { List<string> erpara = new List<string>(); FisException ex = new FisException("DMT031", erpara); throw ex; } UnitOfWork uow = new UnitOfWork(); //mantis 1406 //检查是否该Rule已经被使用,若被使用,则警示用户,放弃后续操作。 IList<ProcessRule> list = new List<ProcessRule>(); list = processRepository.GetAllRuleByRuleSetID(singleRuleSet.Id); if (list != null && list.Count > 0) { List<string> erpara = new List<string>(); FisException ex = new FisException("DMT157", erpara); throw ex; } /*if (processRepository.GetAllRuleByRuleSetID(singleRuleSet.Id) != null && processRepository.GetAllRuleByRuleSetID(singleRuleSet.Id).Count > 0) { processRepository.DeleteRuleByRuleSetIDDefered(uow,singleRuleSet.Id); processRepository.DeleteAllModelProcessDefered(uow); }*/ //mantis 1406 processRepository.UpdateProcessRuleSetDefered(uow,ruleset); uow.Commit(); }
public string AddProcessRuleSet(RulesetInfoDataMaintain singleRuleSet) { //若Rule Set CheckList框中所有被选项与Rule Set List中某个栏位组合完全对应相同,则警示用户,放弃后续操作 ProcessRuleSet ruleset = new ProcessRuleSet(); UnitOfWork uow = new UnitOfWork(); ruleset.ID = singleRuleSet.Id; ruleset.Priority = singleRuleSet.Id; ruleset.Condition1 = singleRuleSet.Condition1; ruleset.Condition2 = singleRuleSet.Condition2; ruleset.Condition3 = singleRuleSet.Condition3; ruleset.Condition4 = singleRuleSet.Condition4; ruleset.Condition5 = singleRuleSet.Condition5; ruleset.Condition6 = singleRuleSet.Condition6; ruleset.Cdt = DateTime.Now; ruleset.Udt = DateTime.Now; ruleset.Editor = singleRuleSet.Editor; if (processRepository.IFRuleSetIsExists(ruleset)) { List<string> erpara = new List<string>(); FisException ex = new FisException("DMT031", erpara); throw ex; } processRepository.AddProcessRuleSet(ruleset); processRepository.DeleteAllModelProcessDefered(uow); uow.Commit(); return ruleset.ID.ToString(); }