/// <summary> /// Retrieves items where any of the defined properties /// are equal to any of the supplied <paramref name="values">value</paramref> /// </summary> /// <param name="values">A collection of values to match upon</param> public EnumerableChildStringSearch <TParent, TChild> EqualTo(params string[] values) { var equalToExpression = EnumerableEqualsExpressionBuilder.Build(this.Properties, values, this._searchOptions); this.AppendExpression(equalToExpression); return(this); }
/// <summary> /// Retrieve items where any of the defined properties /// are equal to any of the defined search terms /// </summary> /// <param name="terms">Term or terms to search for</param> public EnumerableStringSearch <T> EqualTo(params string[] terms) { Expression fullExpression = EnumerableEqualsExpressionBuilder.Build(Properties, terms, _searchOptions); BuildExpression(fullExpression); return(this); }
public EnumerableStringSearch <T> IsEqual(params string[] terms) { var fullExpression = EnumerableEqualsExpressionBuilder.Build(this.Properties, terms, _searchOptions); this.BuildExpression(fullExpression); return(this); }
/// <summary> /// Retrieve items where any of the defined properties /// are equal to any of the defined properties to search for /// </summary> /// <param name="propertiesToSearchFor">Properties to search for</param> public EnumerableStringSearch <T> EqualTo(params Expression <Func <T, string> >[] propertiesToSearchFor) { propertiesToSearchFor = propertiesToSearchFor.Select(AlignParameter).ToArray(); Expression completeExpression = EnumerableEqualsExpressionBuilder.Build(Properties, propertiesToSearchFor, _searchOptions); BuildExpression(completeExpression); return(this); }
public static Expression Build <T>(Expression <Func <T, string> >[] properties, string[] searchTerms, SearchOptions searchOptions) { Expression completeExpression = null; var comparisonTypeExpression = Expression.Constant(searchOptions.ComparisonType); foreach (var stringProperty in properties) { var containsExpression = Build(stringProperty, searchTerms, comparisonTypeExpression, searchOptions.SearchType); completeExpression = ExpressionHelper.JoinOrExpression(completeExpression, containsExpression); } if (searchOptions.SearchType == SearchType.WholeWords) { var startsWithExpression = EnumerableStartsWithExpressionBuilder.Build(properties, searchTerms, searchOptions); completeExpression = ExpressionHelper.JoinOrExpression(completeExpression, startsWithExpression); var endsWithExpression = EnumerableEndsWithExpressionBuilder.Build(properties, searchTerms, searchOptions); completeExpression = ExpressionHelper.JoinOrExpression(completeExpression, endsWithExpression); var equalsExpression = EnumerableEqualsExpressionBuilder.Build(properties, searchTerms, searchOptions); completeExpression = ExpressionHelper.JoinOrExpression(completeExpression, equalsExpression); } return(completeExpression); }