public override Expression <Func <Product, bool> > Build(NameValueCollection qs) { // 1. map query string dictionary with specification foreach (string key in qs) { QueryStringConstants queryKey = QueryStringDictionary.Content[key]; ISpecification <Product> specification = _specificationFactory[queryKey].Create(qs[key]); this._BaseSpecification = this._BaseSpecification.And(specification); } // 2. compile to Delegate return(this._BaseSpecification.ToExpression()); }
public void SetSpecification(QueryStringConstants qConst, string type) { _sp = _spFactory[qConst].Create(type); }