private static Expression <Func <CustomerAccount, bool> > WhereFilter(CustomerAccountFilters filters) { var expr = PredicateBuilder.True <CustomerAccount>(); if (filters.CustomerId.HasValue) { expr = expr.And(x => x.CustomerId == filters.CustomerId); } if (filters.CustomerOrganizationId.HasValue) { expr = expr.And(x => x.CustomerOrganizationId == filters.CustomerOrganizationId); } if (filters.AccountManagerId.HasValue) { expr = expr.And(x => x.AccountManagerId == filters.AccountManagerId); } if (filters.AccountManagerOrganizationId.HasValue) { expr = expr.And(x => x.AccountManagerOrganizationId == filters.AccountManagerOrganizationId); } if (filters.Number.HasValue) { expr = expr.And(x => x.Number == filters.Number); } return(expr); }
public static IQueryable <CustomerAccount> ApplyWhereFilters(this IQueryable <CustomerAccount> entities, CustomerAccountFilters filters) { return(entities.Where(WhereFilter(filters))); }