protected object GetCriterionValue(CriterionBase criterionBase, QueryPartCollector.CriterionValuePair criterionValuePair) { object criterionValue = criterionValuePair.CriterionValue; if (criterionBase is IPatternMatchCriterion) { IPatternMatchCriterion patternMatchCriterion = (IPatternMatchCriterion)criterionBase; string strCriterionValue = Convert.ToString(criterionValue); if (MatchOption.End == patternMatchCriterion.MatchOption) { criterionValue = "%" + strCriterionValue; } else if (MatchOption.Exact == patternMatchCriterion.MatchOption) { criterionValue = strCriterionValue; } else if (MatchOption.Start == patternMatchCriterion.MatchOption) { criterionValue = strCriterionValue + "%"; } else { criterionValue = "%" + strCriterionValue + "%"; } } return(criterionValue); }
public virtual string CreateWhereClause(QueryPartCollector queryPartCollector) { StringBuilder whereClause = new StringBuilder(); if (queryPartCollector != null && queryPartCollector.CriterionValuePairs != null && queryDescriptor != null && queryDescriptor.CriterionParts != null) { bool isFirstElement = true; foreach (QueryPartCollector.CriterionValuePair criterionValuePair in queryPartCollector.CriterionValuePairs) { CriterionBase criterionElement = (CriterionBase)queryDescriptor.CriterionParts[criterionValuePair.CriterionKey]; if (isFirstElement) { isFirstElement = false; whereClause.Append(" where "); whereClause.Append(criterionElement.ToPhrase(true)); whereClause.Append(" "); } else { whereClause.Append(" "); whereClause.Append(criterionElement.ToPhrase()); whereClause.Append(" "); } } } return(whereClause.ToString()); }
public void FillParameters(IQuery query, QueryPartCollector queryPartCollector) { IList <QueryPartCollector.CriterionValuePair> criterionValuePairs = queryPartCollector.CriterionValuePairs; IDictionary <Object, CriterionBase> criterionParts = queryDescriptor.CriterionParts; foreach (QueryPartCollector.CriterionValuePair criterionValuePair in criterionValuePairs) { CriterionBase criterionBase = (CriterionBase)criterionParts[criterionValuePair.CriterionKey]; if (criterionBase.IsCriterionParameterRequired()) { if (criterionBase is ISingleParameterCriterion) { ISingleParameterCriterion singleParameterCriterion = (ISingleParameterCriterion)criterionBase; string criterionParameterName = singleParameterCriterion.CriterionParameterName; Type criterionParameterType = singleParameterCriterion.CriterionParameterType; FillParameter(query, criterionParameterName, criterionParameterType, GetCriterionValue(criterionBase, criterionValuePair)); } } } }