I've got two IQueryables:
public static IQueryable<Counterparty> SearchByCode(this IQueryable<Counterparty> queryable, string searchQuery)
{
return queryable.Where(x => x.Code.StartsWith(searchQuery.ToUpper()));
}
public static IQueryable<Counterparty> SearchByName(this IQueryable<Counterparty> queryable, string searchQuery)
{
return queryable.Where(x => x.Name.ToLower().Contains(searchQuery.ToLower()));
}
I want to create another IQueryable which combines the two queries as an OR e.g
public static IQueryable<Counterparty> SearchByCodeOrName(this IQueryable<Counterparty> queryable, string searchQuery)
{
// return SearchByName(searchQuery) OR SearchByCode(searchQuery)
}
I'd rather avoid duplication of code so I want to reuse the existing queryables rather than rewriting a new lambda expression like Where(x=> x.Code.StartsWith.... || x.Name.Contains.....)