/*public static Product[] FilterAffordableProducts(Product[] products) { var result = new ArrayList(); foreach (var product in products) { if (product.Cost < 40) result.Add(product); } return (Product[]) (result.ToArray(typeof (Product))); } public static Product[] FilterOverStockedProducts(Product[] products) { var result = new ArrayList(); foreach (var product in products) { if (product.Units > 50) result.Add(product); } return (Product[])(result.ToArray(typeof(Product))); }*/ public static Product[] Filter(Product[] products, IProductCriteria productCriteria) { var result = new ArrayList(); foreach (var product in products) { if (productCriteria.IsSatisfiedBy(product)) result.Add(product); } return (Product[])(result.ToArray(typeof(Product))); }
/*public static Product[] FilterAffordableProducts(Product[] products) * { * var result = new ArrayList(); * foreach (var product in products) * { * if (product.Cost < 40) * result.Add(product); * } * return (Product[]) (result.ToArray(typeof (Product))); * } * public static Product[] FilterOverStockedProducts(Product[] products) * { * var result = new ArrayList(); * foreach (var product in products) * { * if (product.Units > 50) * result.Add(product); * } * return (Product[])(result.ToArray(typeof(Product))); * }*/ public static Product[] Filter(Product[] products, IProductCriteria productCriteria) { var result = new ArrayList(); foreach (var product in products) { if (productCriteria.IsSatisfiedBy(product)) { result.Add(product); } } return((Product[])(result.ToArray(typeof(Product)))); }
public NotCriteria(IProductCriteria criteria) { _criteria = criteria; }
public AndCriteria(IProductCriteria criteria1, IProductCriteria criteria2) { _criteria1 = criteria1; _criteria2 = criteria2; }
public OrCriteria(IProductCriteria criteria1, IProductCriteria criteria2) { _criteria1 = criteria1; _criteria2 = criteria2; }