Should I be filtering my IQueryable results from the Domain Service?
For example... My 3 portals (Websites) access the same Domain Service Layer, depending on the type of user it is, I call a specific repository method and return the result,
Current Repository Layer:
IQueryable<Products> GetAllProductsForCrazyUserNow(CrazyUser id);
Products GetAProductForCrazyUserNow(CrazyUser id,product id);
IQueryable<Products> GetProductsForNiceUserNow(NiceUser id);
Products GetProductsForNiceUserNow(NiceUser id,product id);
Would it be best just to do this in the Repository Layer:
IQueryable<Products> GetAllProducts();
Products GetAProduct(product id);
Then within the Domain Service, I simple do the filter i.e.
var Niceman = IQueryable<Products> GetAllProducts().Where(u=> u.Name == "Nice");
NOTE: I have a read only session and session which includes CRUD within the Repository Layer, so please keep that in mind when answering.
Second question: Should I do any filtering at all in the domain service layer? This very layer is the only layer than can amend the Entity i.e. Product.Price == 25.00; This is not delegated to the repository layer.