Example #1
0
        public virtual IJqlClause VisitJql(JqlExpression clause)
        {
            var               changed = false;
            IJqlClause        filter  = null;
            OrderByExpression orderBy = null;

            if (clause.Filter != null)
            {
                filter   = Visit(clause.Filter);
                changed |= filter != clause.Filter;
            }

            if (clause.OrderBy != null)
            {
                orderBy  = (OrderByExpression)Visit(clause.OrderBy);
                changed |= orderBy != clause.OrderBy;
            }

            return(changed
                ? new JqlExpression
            {
                Filter = filter,
                OrderBy = orderBy
            }
                : clause);
        }
Example #2
0
        public virtual IJqlClause VisitOrderBy(OrderByExpression clause)
        {
            var changed        = false;
            var fieldOrderings = new FieldOrdering[clause.Fields.Length];

            for (var i = 0; i < clause.Fields.Length; ++i)
            {
                var field = clause.Fields[i];
                fieldOrderings[i] = new FieldOrdering
                {
                    Field = Visit(field.Field),
                    Order = field.Order
                };
                changed |= fieldOrderings[i].Field != field.Field;
            }

            return(changed
                ? new OrderByExpression {
                Fields = fieldOrderings
            }
                : clause);
        }