Exemple #1
0
        public IEnumerable <Subgroup> Filter(IEnumerable <Subgroup> unfilteredSubgroups, Group group)
        {
            var specsList = new List <ISpecification <Subgroup> >
            {
                new SubgroupGroupSpecification(group)
            };

            var andSpecification     = new AndSpecification <Subgroup>(specsList);
            var specificationChecker = new SpecificationChecker <Subgroup>();

            return(specificationChecker.Filter(unfilteredSubgroups, andSpecification));
        }
Exemple #2
0
        public IEnumerable <Product> Filter(IEnumerable <Product> unfilteredProducts,
                                            Group group, Subgroup subgroup, string name, string sequence)
        {
            var specsList = new List <ISpecification <Product> >
            {
                new ProductNameSpecification(name),
                new ProductSequenceSpecification(sequence)
            };

            if (group != null)
            {
                specsList.Add(new ProductGroupSpecification(group));
            }
            if (subgroup != null)
            {
                specsList.Add(new ProductSubgroupSpecification(subgroup));
            }

            var andSpecification     = new AndSpecification <Product>(specsList);
            var specificationChecker = new SpecificationChecker <Product>();

            return(specificationChecker.Filter(unfilteredProducts, andSpecification));
        }