Пример #1
0
        private SocketInChannel FindChannel(DataSet ds)
        {
            SocketInChannel chResult = null;
            DataRow         dr       = ds.Tables[0].Rows[0];

            foreach (SocketInChannel ch in SocketInboundAdapterConfigMgt.SocketInAdapterConfig.InboundChanels)
            {
                if (ch.Rule.QueryCriteria.Type == QueryCriteriaRuleType.SQLStatement ||
                    ch.Rule.QueryCriteria.Type == QueryCriteriaRuleType.None)
                {
                    continue;
                }

                List <KKMath.LogicItem> ilist = new List <KKMath.LogicItem>();

                int i = 0;
                for (i = 0; i < ch.Rule.QueryCriteria.MappingList.Count; i++)
                {
                    SocketInQueryCriteriaItem ci = ch.Rule.QueryCriteria.MappingList[i];
                    //if ( !  KKMath.OperationIsTrue(dr[ci.ThirdPartyDBPatamter.FieldName].ToString().ToUpper() , ci.Operator , ci.Translating.ConstValue.ToUpper()))
                    //    break;

                    QueryCriteriaType type = ci.Type;
                    bool             value = KKMath.OperationIsTrue(dr[ci.ThirdPartyDBPatamter.FieldName].ToString().ToUpper(), ci.Operator, ci.Translating.ConstValue.ToUpper());
                    KKMath.LogicItem item  = new KKMath.LogicItem(value, type);
                    ilist.Add(item);
                }

                bool ret = KKMath.JoinLogicItem(ilist);
                if (ret)
                {
                    chResult = ch;
                    break;
                }

                //if (i == ch.Rule.QueryCriteria.MappingList.Count)
                //{
                //    chResult = ch;
                //    break;
                //}
            }
            return(chResult);
        }
Пример #2
0
        private bool CheckCriteria(string fname, FileInChannel ch)
        {
            IniFile2 iniF = new IniFile2(fname, FileInboundAdapterConfigMgt.FileInAdapterConfig.InGeneralParams.CodePageName);
            List <KKMath.LogicItem> ilist = new List <KKMath.LogicItem>();

            //int iMatchCount = 0;
            foreach (FileInQueryCriteriaItem item in ch.Rule.QueryCriteria.MappingList)
            {
                string sSectionName  = item.ThirdPartyDBPatamter.SectionName;
                string sFieldName    = item.ThirdPartyDBPatamter.FieldName;
                string criteriaValue = item.Translating.ConstValue;

                string v = iniF.ReadValue(sSectionName, sFieldName, "");

                QueryCriteriaType type = item.Type;
                bool             value = KKMath.OperationIsTrue(v, item.Operator, criteriaValue);
                KKMath.LogicItem i     = new KKMath.LogicItem(value, type);
                ilist.Add(i);

                //if (KKMath.OperationIsTrue(v, item.Operator, criteriaValue))
                //    iMatchCount++;
            }

            bool ret = KKMath.JoinLogicItem(ilist);

            return(ret);

            //FileInQueryCriteriaItem it = null;
            //if (ch.Rule.QueryCriteria.MappingList.Count > 0) it = (FileInQueryCriteriaItem)ch.Rule.QueryCriteria.MappingList[0];

            //if (iMatchCount == ch.Rule.QueryCriteria.MappingList.Count)
            //    return true;
            //else if (iMatchCount > 0 && it != null && it.Type == QueryCriteriaType.Or)
            //    return true;
            //else
            //    return false;
        }
Пример #3
0
 public LogicItem(bool v, QueryCriteriaType t)
 {
     Value = v;
     Type  = t;
 }
Пример #4
0
 public QueryCriteriaItem(GWDataDBField targetfield, string sourcefield, QueryCriteriaType type)
     : base(targetfield, sourcefield)
 {
     _type = type;
 }
Пример #5
0
 public QueryCriteriaItem(string targetfield, GWDataDBField sourcefield, string lutName, bool redundancyFlag, QueryCriteriaType type)
     : base(targetfield, sourcefield, lutName, redundancyFlag)
 {
     _type = type;
 }
Пример #6
0
 public QueryCriteriaItem(string targetfield, GWDataDBField sourcefield, string lutName, QueryCriteriaType type)
     : base(targetfield, sourcefield, lutName)
 {
     _type = type;
 }
Пример #7
0
 public QueryCriteriaItem(string targetfield, string fixValue, QueryCriteriaType type)
     : base(targetfield, fixValue)
 {
     _type = type;
 }
Пример #8
0
 public QueryCriteriaItem(GWDataDBField targetfield, string sourcefield, bool redundancyFlag, QueryCriteriaType type)
     : base(targetfield, sourcefield, redundancyFlag)
 {
     _type = type;
 }
Пример #9
0
        public static void SetAdditionalQueryCriteria <TC>(XCollection <TC> qcList, XCollection <TC> additionalQCList, QueryCriteriaType additionalQCJoinType)
            where TC : QueryCriteriaItem, IDicomMappingItem, new()
        {
            if (qcList == null || additionalQCList == null)
            {
                return;
            }

            if (qcList.Count < 1)
            {
                foreach (TC qcItem in additionalQCList)
                {
                    qcList.Add(qcItem);
                }
            }
            else if (additionalQCList.Count > 0)
            {
                qcList[0].Type           = QueryCriteriaType.None;
                additionalQCList[0].Type = QueryCriteriaType.None;

                TC qcLeft = new TC();
                qcLeft.Singal = QueryCriteriaSignal.LeftBracket;
                qcLeft.Type   = QueryCriteriaType.None;
                qcList.Insert(0, qcLeft);

                TC qcRight = new TC();
                qcRight.Singal = QueryCriteriaSignal.RightBracket;
                qcRight.Type   = QueryCriteriaType.None;
                qcList.Add(qcRight);

                TC qcAddLeft = new TC();
                qcAddLeft.Singal = QueryCriteriaSignal.LeftBracket;
                qcAddLeft.Type   = additionalQCJoinType;
                qcList.Add(qcAddLeft);

                foreach (TC qcItem in additionalQCList)
                {
                    qcList.Add(qcItem);
                }

                TC qcAddRight = new TC();
                qcAddRight.Singal = QueryCriteriaSignal.RightBracket;
                qcAddRight.Type   = QueryCriteriaType.None;
                qcList.Add(qcAddRight);
            }
        }