private string createFunction(
            StringExpressionFunction function, string value)
        {
            StringBuilder filter = new StringBuilder();

            paramseters.Add(value);

            filter.Append(filterData.ValuePropertyBindingPath);

            if (filterData.ValuePropertyType.IsGenericType &&
                filterData.ValuePropertyType.GetGenericTypeDefinition() == typeof(Nullable <>))
            {
                filter.Append(".Value");
            }

            paramCounter.Increment();
            paramCounter.Increment();

            filter.Append(".ToString()." + function.ToString() + "(@" + (paramCounter.ParameterNumber - 1) + ", @" + (paramCounter.ParameterNumber) + ")");

            if (function == StringExpressionFunction.IndexOf)
            {
                filter.Append(" != -1 ");
            }

            paramseters.Add(filterData.IsCaseSensitiveSearch
                ? StringComparison.CurrentCulture : StringComparison.CurrentCultureIgnoreCase);

            return(filter.ToString());
        }
Ejemplo n.º 2
0
        private void createFilterExpression(
            FilterData filterData, string queryString, StringBuilder filter, string operatorString)
        {
            filter.Append(filterData.ValuePropertyBindingPath);

            object parameterValue = null;

            if (trySetParameterValue(out parameterValue, queryString, filterData.ValuePropertyType))
            {
                Parameters.Add(parameterValue);

                paramCounter.Increment();

                filter.Append(" " + operatorString + " @" + paramCounter.ParameterNumber);
            }
            else
            {
                filter = new StringBuilder();//do not use filter
            }
        }