/// <summary> /// Retrieve items where any of the defined properties starts /// with any of the defined search terms /// </summary> /// <param name="terms">Term or terms to search for</param> public EnumerableChildStringSearch <TParent, TChild> EndsWith(params string[] terms) { Expression endsWithExpression = EnumerableEndsWithExpressionBuilder.Build(this.Properties, terms, _searchOptions); this.AppendExpression(endsWithExpression); return(this); }
/// <summary> /// Retrieve items where any of the defined properties /// ends with any of the defined search terms /// </summary> /// <param name="terms">Term or terms to search for</param> public EnumerableStringSearch <T> EndsWith(params string[] terms) { Expression fullExpression = EnumerableEndsWithExpressionBuilder.Build(this.Properties, terms, _searchOptions); this.BuildExpression(fullExpression); return(this); }
/// <summary> /// Retrieve items where any of the defined properties /// ends with any of the defined search terms /// </summary> /// <param name="propertiesToSearchFor">Properties containing terms to search for</param> public EnumerableStringSearch <T> EndsWith(params Expression <Func <T, string> >[] propertiesToSearchFor) { var propertiesToSearch = propertiesToSearchFor.Select(AlignParameter).ToArray(); Expression finalExpression = EnumerableEndsWithExpressionBuilder.Build(Properties, propertiesToSearch, _searchOptions); BuildExpression(finalExpression); 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); }