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); }
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; }
public LogicItem(bool v, QueryCriteriaType t) { Value = v; Type = t; }
public QueryCriteriaItem(GWDataDBField targetfield, string sourcefield, QueryCriteriaType type) : base(targetfield, sourcefield) { _type = type; }
public QueryCriteriaItem(string targetfield, GWDataDBField sourcefield, string lutName, bool redundancyFlag, QueryCriteriaType type) : base(targetfield, sourcefield, lutName, redundancyFlag) { _type = type; }
public QueryCriteriaItem(string targetfield, GWDataDBField sourcefield, string lutName, QueryCriteriaType type) : base(targetfield, sourcefield, lutName) { _type = type; }
public QueryCriteriaItem(string targetfield, string fixValue, QueryCriteriaType type) : base(targetfield, fixValue) { _type = type; }
public QueryCriteriaItem(GWDataDBField targetfield, string sourcefield, bool redundancyFlag, QueryCriteriaType type) : base(targetfield, sourcefield, redundancyFlag) { _type = type; }
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); } }