Ejemplo n.º 1
0
 /// <summary>
 /// Initializes a new instance of the ExpressionParserBase class.
 /// </summary>
 /// <param name="propertyName"></param>
 /// <param name="comparisonType"></param>
 /// <param name="ignoreCase"></param>
 protected ExpressionParserBase(String propertyName, SqlComparisonType comparisonType, bool ignoreCase)
 {
     PropertyName = propertyName;
     ComparisonType = comparisonType;
     IgnoreCase = ignoreCase;
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Initializes a new instance of the ParameterizedSqlExpressionParser class.
 /// </summary>
 /// <param name="propertyName"></param>
 /// <param name="comparisonType"></param>
 /// <param name="ignoreCase"></param>
 public ParameterizedSqlExpressionParser(String propertyName, SqlComparisonType comparisonType, bool ignoreCase)
     : base(propertyName, comparisonType, ignoreCase)
 {
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Initializes a new instance of the ParameterizedSqlExpressionParser class.
 /// </summary>
 /// <param name="propertyName"></param>
 /// <param name="comparisonType"></param>
 public ParameterizedSqlExpressionParser(String propertyName, SqlComparisonType comparisonType)
     : this(propertyName, comparisonType, false)
 {
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Initializes a new instance of the ParameterizedSqlExpressionParser class.
 /// </summary>
 /// <param name="propertyName"></param>
 /// <param name="comparisonType"></param>
 /// <param name="ignoreCase"></param>
 public ParameterizedSqlExpressionParser(String propertyName, SqlComparisonType comparisonType, bool ignoreCase)
     : base(propertyName, comparisonType, ignoreCase)
 {
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Initializes a new instance of the ParameterizedSqlExpressionParser class.
 /// </summary>
 /// <param name="propertyName"></param>
 /// <param name="comparisonType"></param>
 public ParameterizedSqlExpressionParser(String propertyName, SqlComparisonType comparisonType)
     : this(propertyName, comparisonType, false)
 {
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Converts the search text into a valid search expression.
        /// </summary>
        /// <param name="propertyName"></param>
        /// <param name="value"></param>
        /// <param name="ignoreCase"></param>
        /// <returns></returns>
        protected virtual String WrapWithSQL(String propertyName, String value, bool ignoreCase)
        {
            SqlComparisonType compare = ComparisonType;
            String            sql     = String.Empty;

            // check for wildcards
            if (String.IsNullOrEmpty(value))
            {
                return(sql);
            }
            else if (value.Equals(SqlUtil.STAR))
            {
                compare = SqlComparisonType.Like;
                value   = SqlUtil.WILD;
            }
            else if (value.StartsWith(SqlUtil.STAR) && value.EndsWith(SqlUtil.STAR))
            {
                compare = SqlComparisonType.Contains;
                value   = value.Substring(1, value.Length - 2);
            }
            else if (value.EndsWith(SqlUtil.STAR))
            {
                compare = SqlComparisonType.StartsWith;
                value   = value.Substring(0, value.Length - 1);
            }
            else if (value.StartsWith(SqlUtil.STAR))
            {
                compare = SqlComparisonType.EndsWith;
                value   = value.Substring(1, value.Length - 1);
            }
            else
            {
                compare = SqlComparisonType.Equals;
            }

            // make sure there are no embeded wildcards
            if (value.IndexOf(SqlUtil.STAR) > -1)
            {
                value = value.Replace(SqlUtil.STAR, SqlUtil.WILD);

                if (compare == SqlComparisonType.Equals)
                {
                    compare = SqlComparisonType.Like;
                }
            }
            // check for actual wild card character
            if (compare == SqlComparisonType.Equals && value.IndexOf(SqlUtil.WILD) > -1)
            {
                compare = SqlComparisonType.Like;
            }

            switch (compare)
            {
            case SqlComparisonType.Contains:
                sql = Contains(propertyName, value, ignoreCase);
                break;

            case SqlComparisonType.StartsWith:
                sql = StartsWith(propertyName, value, ignoreCase);
                break;

            case SqlComparisonType.EndsWith:
                sql = EndsWith(propertyName, value, ignoreCase);
                break;

            case SqlComparisonType.Like:
                sql = Like(propertyName, value, ignoreCase);
                break;

            default:
                sql = Equals(propertyName, value, ignoreCase);
                break;
            }

            return(sql);
        }