public static AdvancedSearchCriteria Generate(QueryModel model, IEktronIdProvider idProvider)
        {
            TransformationVisitor.Transform(model);
            AdvancedSearchCriteria criteria = TranslationVisitor.Translate(model, idProvider);

            return criteria;
        }
 public TranslationVisitor(IEktronIdProvider idProvider)
 {
     _exprTreeAggregator = new CriteriaExpressionTreeAggregator();
     _orderByAggregator = new OrderByAggregator();
     _idProvider = idProvider;
     _returnProperties = new List<PropertyExpression>();
 }
        public static AdvancedSearchCriteria Translate(QueryModel queryModel, IEktronIdProvider idProvider)
        {
            var visitor = new TranslationVisitor(idProvider);
            visitor.VisitQueryModel(queryModel);

            AdvancedSearchCriteria criteria = new AdvancedSearchCriteria
                {
                    ExpressionTree = visitor.ExpressionTree,
                    OrderBy = visitor.OrderByData,
                    ReturnProperties = new HashSet<PropertyExpression>(visitor._returnProperties)
                };

            if (criteria.ExpressionTree == null)
            {
                criteria.ExpressionTree = SearchType.IsContent();
            }

            return criteria;
        }
 public SubQueryTests()
 {
     _idProvider = new IdProvider();
 }