internal static IQueryable<Establishment> WithName(this IQueryable<Establishment> queryable, string term, StringMatchStrategy matchStrategy) { var names = QueryEstablishmentNames.SearchTermMatches(term, matchStrategy); // ReSharper disable ConvertClosureToMethodGroup Expression<Func<Establishment, bool>> establishments = establishment => establishment.Names.Any(name => names.Invoke(name)); // ReSharper restore ConvertClosureToMethodGroup return queryable.AsExpandable().Where(establishments.Expand()); }
internal static IQueryable<Place> WithName(this IQueryable<Place> queryable, string term, StringMatchStrategy matchStrategy) { var matchesName = OfficialNameMatches(term, matchStrategy) //.Or //( // NonOfficialNameMatches(term, matchStrategy) //) ; return queryable.AsExpandable().Where(matchesName); }
internal static IQueryable<Agreement> MatchingPlaceParticipantOrContact(this IQueryable<Agreement> queryable, string keyword) { if (string.IsNullOrWhiteSpace(keyword)) return queryable; var matchesPlaceParticipantOrContact = NonOwnerPlaceNameMatches(keyword) .Or(ParticipantNameMatches(keyword)) .Or(ContactMatches(keyword)); return queryable.AsExpandable().Where(matchesPlaceParticipantOrContact); }