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();
 }
Exemple #2
0
        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;
        }
Exemple #3
0
 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();

        }