public IEnumerable <Product> Filter(IEnumerable <Product> items, BaseSpecification <Product> specification) { foreach (var item in items) { if (specification.IsSutisfied(item)) { yield return(item); } } }
public AndSpecification(BaseSpecification <T> first, BaseSpecification <T> second) { _first = first; _second = second; }