Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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));
                    }
                }
            }
        }