private Expression <Func <Seiyuu, bool> > ExtendExpressionWithSearchCriteria(Expression <Func <Seiyuu, bool> > predicate, SeiyuuSearchCriteria searchCriteria) { return(predicate .And(!string.IsNullOrWhiteSpace(searchCriteria.Name), () => seiyuu => seiyuu.Name.Contains(searchCriteria.Name, StringComparison.InvariantCultureIgnoreCase) || seiyuu.Name.SwapNameSurname().Contains(searchCriteria.Name, StringComparison.InvariantCultureIgnoreCase) || seiyuu.JapaneseName.Contains(searchCriteria.Name, StringComparison.InvariantCultureIgnoreCase))); }
public Expression <Func <Seiyuu, bool> > BuildExpression(SeiyuuSearchCriteria searchCriteria) { var predicate = PredicateBuilder.True <Seiyuu>(); return(searchCriteria != null?ExtendExpressionWithSearchCriteria(predicate, searchCriteria) : predicate); }