Exemplo n.º 1
0
 public override void Visit(DbSortExpression expression)
 {
     EntityUtils.CheckArgumentNull <DbSortExpression>(expression, nameof(expression));
     this.VisitExpressionBindingPre(expression.Input);
     for (int index = 0; index < expression.SortOrder.Count; ++index)
     {
         this.VisitExpression(expression.SortOrder[index].Expression);
     }
     this.VisitExpressionBindingPost(expression.Input);
 }
Exemplo n.º 2
0
        public override void Visit(DbSortExpression e)
        {
            Check.NotNull(e, "e");

            VisitExprKind(e.ExpressionKind);
            _key.Append('(');
            VisitBinding(e.Input);
            VisitSortOrder(e.SortOrder);
            _key.Append(')');
        }
            public override DbExpression Visit(DbSortExpression expression)
            {
                Check.NotNull <DbSortExpression>(expression, nameof(expression));
                DbExpression input = this.Find(expression.Input.Expression);

                if (!object.ReferenceEquals((object)input, (object)expression.Input.Expression))
                {
                    return((DbExpression)input.BindAs(expression.Input.VariableName).Sort((IEnumerable <DbSortClause>)expression.SortOrder));
                }
                return((DbExpression)expression);
            }
Exemplo n.º 4
0
            public override TreeNode Visit(DbSortExpression e)
            {
                Check.NotNull(e, "e");

                var retInfo = NodeFromExpression(e);

                retInfo.Children.Add(VisitBinding("Input", e.Input));
                retInfo.Children.Add(VisitSortOrder(e.SortOrder));

                return(retInfo);
            }
Exemplo n.º 5
0
        /// <summary>
        ///     Visitor pattern method for SortExpression./>.
        /// </summary>
        /// <param name="expression"> The SortExpression that is being visited. </param>
        /// <exception cref="ArgumentNullException">
        ///     <paramref name="expression" />
        ///     is null
        /// </exception>
        public override void Visit(DbSortExpression expression)
        {
            // #433613: PreSharp warning 56506: Parameter 'expression' to this public method must be validated: A null-dereference can occur here.
            Check.NotNull(expression, "expression");

            VisitExpressionBindingPre(expression.Input);
            for (var idx = 0; idx < expression.SortOrder.Count; idx++)
            {
                VisitExpression(expression.SortOrder[idx].Expression);
            }
            VisitExpressionBindingPost(expression.Input);
        }
Exemplo n.º 6
0
        public override bool Visit(DbSortExpression expression)
        {
            Check.NotNull <DbSortExpression>(expression, nameof(expression));
            bool flag1 = this.VisitExpressionBinding(expression.Input);
            bool flag2 = this.VisitSortClauseList(expression.SortOrder);

            if (!flag1)
            {
                return(flag2);
            }
            return(true);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Implements the visitor pattern for <see cref="T:System.Data.Common.CommandTrees.DbSortExpression"/>.
        /// </summary>
        /// <param name="expression">The <see cref="T:System.Data.Common.CommandTrees.DbSortExpression"/> that is visited.</param>
        public override void Visit(DbSortExpression expression)
        {
            if (expression == null)
            {
                throw new ArgumentNullException("expression");
            }

            expression.Input.Expression.Accept(this);
            foreach (DbSortClause sortClause in expression.SortOrder)
            {
                sortClause.Expression.Accept(this);
            }
        }
Exemplo n.º 8
0
            public override DbExpression Visit(DbSortExpression expression)
            {
                DbExpression found = Find(expression.Input.Expression);

                if (!object.ReferenceEquals(found, expression.Input.Expression))
                {
                    return(found.BindAs(expression.Input.VariableName).Sort(expression.SortOrder));
                }
                else
                {
                    return(expression);
                }
            }
Exemplo n.º 9
0
        /// <summary>
        /// Implements the visitor pattern for <see cref="T:System.Data.Common.CommandTrees.DbSortExpression"/>.
        /// </summary>
        /// <param name="expression">The <see cref="T:System.Data.Common.CommandTrees.DbSortExpression"/> that is visited.</param>
        public override void Visit(DbSortExpression expression)
        {
            if (expression == null)
            {
                throw new ArgumentNullException("expression");
            }

            expression.Input.Expression.Accept(this);
            foreach (DbSortClause sortClause in expression.SortOrder)
            {
                sortClause.Expression.Accept(this);
            }
        }
Exemplo n.º 10
0
 public override void Visit(DbSortExpression expression)
 {
     if (expression == null)
     {
         throw new ArgumentException("expression");
     }
     VisitExpressionBindingPre(expression.Input);
     for (int i = 0; i < expression.SortOrder.Count; i++)
     {
         VisitExpression(expression.SortOrder[i].Expression);
     }
     VisitExpressionBindingPost(expression.Input);
 }
Exemplo n.º 11
0
        public override SqlFragment Visit(DbSortExpression expression)
        {
            SelectStatement select = VisitInputExpressionEnsureSelect(expression.Input.Expression,
                                                                      expression.Input.VariableName, expression.Input.VariableType);

            select = WrapIfNotCompatible(select, expression.ExpressionKind);

            foreach (DbSortClause sortClause in expression.SortOrder)
            {
                select.AddOrderBy(new SortFragment(
                                      sortClause.Expression.Accept(this), sortClause.Ascending));
            }
            return(select);
        }
Exemplo n.º 12
0
            public override DbExpression Visit(DbSortExpression expression)
            {
                Check.NotNull(expression, "expression");

                var found = Find(expression.Input.Expression);

                if (!ReferenceEquals(found, expression.Input.Expression))
                {
                    return(found.BindAs(expression.Input.VariableName).Sort(expression.SortOrder));
                }
                else
                {
                    return(expression);
                }
            }
Exemplo n.º 13
0
        /// <summary>
        /// <see cref="Visit(DbFilterExpression)"/>
        /// </summary>
        /// <param name="e"></param>
        /// <returns>A <see cref="SqlSelectStatement"/></returns>
        /// <seealso cref="Visit(DbFilterExpression)"/>
        public override ISqlFragment Visit(DbSortExpression e)
        {
            Symbol fromSymbol;
            var    result = VisitInputExpression(e.Input.Expression, e.Input.VariableName, e.Input.VariableType, out fromSymbol);

            // OrderBy is compatible with Filter and nothing else
            if (!IsCompatible(result, e.ExpressionKind))
            {
                result = CreateNewSelectStatement(result, e.Input.VariableName, e.Input.VariableType, out fromSymbol);
            }

            selectStatementStack.Push(result);
            symbolTable.EnterScope();

            AddFromSymbol(result, e.Input.VariableName, fromSymbol);

            AddSortKeys(result.OrderBy, e.SortOrder);

            symbolTable.ExitScope();
            selectStatementStack.Pop();

            return(result);
        }
Exemplo n.º 14
0
                protected DbSkipExpression ApplySortOrderToSkip(DbExpression input, DbSortExpression sort, DbExpression k)
                {
                    DbExpressionBinding inputBinding = input.BindAs(sort.Input.VariableName);

                    return(inputBinding.Skip(sort.SortOrder, k));
                }
		public override void Visit(DbSortExpression expression)
		{
			throw new NotSupportedException("Visit(\"SortExpression\") is not supported.");
		}
Exemplo n.º 16
0
 public override void Visit(DbSortExpression e)
 {
     VisitExprKind(e.ExpressionKind);
     _key.Append('(');
     VisitBinding(e.Input);
     VisitSortOrder(e.SortOrder);
     _key.Append(')');
 }
Exemplo n.º 17
0
 public override DbExpression Visit(DbSortExpression expression)
 {
     DbExpression found = Find(expression.Input.Expression);
     if(!object.ReferenceEquals(found, expression.Input.Expression))
     {
         return found.BindAs(expression.Input.VariableName).Sort(expression.SortOrder);
     }
     else
     {
         return expression;
     }
 }
Exemplo n.º 18
0
        public override Expression Visit(DbSortExpression expression)
        {
            Expression source = this.Visit(expression.Input.Expression);

            return this.CreateOrderByExpression(expression.SortOrder, expression.Input.VariableName, source);
        }
Exemplo n.º 19
0
 internal ProjectSortLifter(DbProjectExpression project, DbSortExpression sort, AliasGenerator aliasGenerator)
     : base(project, aliasGenerator)
 {
     _project = project;
     _sort = sort;
     _source = sort.Input.Expression;
 }
Exemplo n.º 20
0
 public override object Visit(DbSortExpression expression)
 {
     this.Visit(expression.Input.Expression);
     return(null);
 }
Exemplo n.º 21
0
 public override TReturn Visit(DbSortExpression expression)
 {
     Check.NotNull <DbSortExpression>(expression, nameof(expression));
     throw this.ConstructNotSupportedException((DbExpression)expression);
 }
Exemplo n.º 22
0
 public override TReturn Visit(DbSortExpression expression)
 {
     throw ConstructNotSupportedException(expression);
 }
Exemplo n.º 23
0
 /// <summary>
 ///     Visitor pattern method for DbSortExpression.
 /// </summary>
 /// <param name="expression"> The DbSortExpression that is being visited. </param>
 public abstract void Visit(DbSortExpression expression);
Exemplo n.º 24
0
 public override void Visit(DbSortExpression e)
 {
     Begin(e);
     Dump(e.Input, "Input");
     Dump(e.SortOrder);
     End(e);
 }
Exemplo n.º 25
0
            public override DbExpressionEntitySetInfo Visit(DbSortExpression expression)
            {
                Check.NotNull(expression, "expression");

                return(null);
            }
Exemplo n.º 26
0
 public override VfpExpression Visit(DbSortExpression expression)
 {
     return(new VfpSortExpression(expression.ResultType,
                                  CreateDbExpressionBinding(expression.Input),
                                  CreateDbSortClauses(expression.SortOrder)));
 }
Exemplo n.º 27
0
        public override Expression Visit(DbSortExpression expression)
        {
            Expression source = this.Visit(expression.Input.Expression);

            return(this.CreateOrderByExpression(expression.SortOrder, expression.Input.VariableName, source));
        }
Exemplo n.º 28
0
 internal SortLifter(DbSortExpression sort, AliasGenerator aliasGenerator)
     : base(sort, aliasGenerator)
 {
     _sort   = sort;
     _source = sort.Input.Expression;
 }
 public override ViewValidator.DbExpressionEntitySetInfo Visit(
     DbSortExpression expression)
 {
     Check.NotNull <DbSortExpression>(expression, nameof(expression));
     return((ViewValidator.DbExpressionEntitySetInfo)null);
 }
Exemplo n.º 30
0
 /// <summary>
 ///     Typed visitor pattern method for DbSortExpression.
 /// </summary>
 /// <param name="expression"> The DbSortExpression that is being visited. </param>
 /// <returns> An instance of TResultType. </returns>
 public abstract TResultType Visit(DbSortExpression expression);
Exemplo n.º 31
0
        public override SqlFragment Visit(DbSortExpression expression)
        {
            SelectStatement select = VisitInputExpressionEnsureSelect(expression.Input.Expression, 
                expression.Input.VariableName, expression.Input.VariableType);

            select = WrapIfNotCompatible(select, expression.ExpressionKind);

            foreach (DbSortClause sortClause in expression.SortOrder)
            {
                select.AddOrderBy(new SortFragment(
                    sortClause.Expression.Accept(this), sortClause.Ascending));
            }
            return select;
        }
Exemplo n.º 32
0
 internal SortLifter(DbSortExpression sort, AliasGenerator aliasGenerator)
     : base(sort, aliasGenerator)
 {
     _sort = sort;
     _source = sort.Input.Expression;
 }
Exemplo n.º 33
0
 internal LimitSortLifter(DbLimitExpression limit, DbSortExpression sort, AliasGenerator aliasGenerator)
     : base(limit, aliasGenerator)
 {
     _limit = limit;
     _sort  = sort;
 }
Exemplo n.º 34
0
 public override void Visit(DbSortExpression expression)
 {
     throw new NotSupportedException("Visit(\"DbSortExpression\") is not supported.");
 }
Exemplo n.º 35
0
        public override TReturn Visit(DbSortExpression expression)
        {
            Check.NotNull(expression, "expression");

            throw ConstructNotSupportedException(expression);
        }
Exemplo n.º 36
0
        /// <summary>
        ///     Visitor pattern method for SortExpression./>.
        /// </summary>
        /// <param name="expression"> The SortExpression that is being visited. </param>
        /// <exception cref="ArgumentNullException">
        ///     <paramref name="expression" />
        ///     is null
        /// </exception>
        public override void Visit(DbSortExpression expression)
        {
            // #433613: PreSharp warning 56506: Parameter 'expression' to this public method must be validated: A null-dereference can occur here.
            Check.NotNull(expression, "expression");

            VisitExpressionBindingPre(expression.Input);
            for (var idx = 0; idx < expression.SortOrder.Count; idx++)
            {
                VisitExpression(expression.SortOrder[idx].Expression);
            }
            VisitExpressionBindingPost(expression.Input);
        }
Exemplo n.º 37
0
 internal ProjectLimitSortLifter(
     DbProjectExpression project, DbLimitExpression limit, DbSortExpression sort, AliasGenerator aliasGenerator)
     : base(project, aliasGenerator)
 {
     _project = project;
     _limit = limit;
     _sort = sort;
 }
Exemplo n.º 38
0
 public override SqlFragment Visit(DbSortExpression expression)
 {
     throw new NotImplementedException();
 }
        /// <summary>
        ///     Visitor pattern method for <see cref="DbSortExpression" />.
        /// </summary>
        /// <param name="expression"> The DbSortExpression that is being visited. </param>
        /// <exception cref="ArgumentNullException">
        ///     <paramref name="expression" />
        ///     is null
        /// </exception>
        public override void Visit(DbSortExpression expression)
        {
            Check.NotNull(expression, "expression");

            VisitExpressionBindingPre(expression.Input);
            for (var idx = 0; idx < expression.SortOrder.Count; idx++)
            {
                VisitExpression(expression.SortOrder[idx].Expression);
            }
            VisitExpressionBindingPost(expression.Input);
        }
        public override void Visit(DbSortExpression e)
        {
            Check.NotNull(e, "e");

            Begin(e);
            Dump(e.Input, "Input");
            Dump(e.SortOrder);
            End(e);
        }
Exemplo n.º 41
0
 protected DbSortExpression RebindSort(DbExpression input, DbSortExpression sort)
 {
     DbExpressionBinding inputBinding = input.BindAs(sort.Input.VariableName);
     return inputBinding.Sort(sort.SortOrder);
 }
Exemplo n.º 42
0
                protected DbSortExpression RebindSort(DbExpression input, DbSortExpression sort)
                {
                    DbExpressionBinding inputBinding = input.BindAs(sort.Input.VariableName);

                    return(inputBinding.Sort(sort.SortOrder));
                }
Exemplo n.º 43
0
 protected DbSkipExpression ApplySortOrderToSkip(DbExpression input, DbSortExpression sort, DbExpression k)
 {
     DbExpressionBinding inputBinding = input.BindAs(sort.Input.VariableName);
     return inputBinding.Skip(sort.SortOrder, k);
 }
Exemplo n.º 44
0
 internal ProjectLimitSortLifter(DbProjectExpression project, DbLimitExpression limit, DbSortExpression sort, AliasGenerator aliasGenerator)
     : base(project, aliasGenerator)
 {
     _project = project;
     _limit   = limit;
     _sort    = sort;
     _source  = sort.Input.Expression;
 }
Exemplo n.º 45
0
 internal LimitSortLifter(DbLimitExpression limit, DbSortExpression sort, AliasGenerator aliasGenerator)
     : base(limit, aliasGenerator)
 {
     _limit = limit;
     _sort = sort;
     _source = sort.Input.Expression;
 }
Exemplo n.º 46
0
 /// <summary>
 ///     Visitor pattern method for DbSortExpression.
 /// </summary>
 /// <param name="expression"> The DbSortExpression that is being visited. </param>
 public abstract void Visit(DbSortExpression expression);
 public override void Visit(DbSortExpression expression) { }
Exemplo n.º 48
0
 public override void Visit(DbSortExpression expression)
 {
   if (expression == null) throw new ArgumentException("expression");
   VisitExpressionBindingPre(expression.Input);
   for (int i = 0; i < expression.SortOrder.Count; i++)
   {
     VisitExpression(expression.SortOrder[i].Expression);
   }
   VisitExpressionBindingPost(expression.Input);
 }
Exemplo n.º 49
0
 public override void Visit(DbSortExpression expression)
 {
     Contract.Requires(expression != null);
 }
Exemplo n.º 50
0
 public override DbExpressionEntitySetInfo Visit(DbSortExpression expression)
 {
     return(null);
 }
            public override DbExpression Visit(DbSortExpression expression)
            {
                Check.NotNull(expression, "expression");

                var found = Find(expression.Input.Expression);
                if (!ReferenceEquals(found, expression.Input.Expression))
                {
                    return found.BindAs(expression.Input.VariableName).Sort(expression.SortOrder);
                }
                else
                {
                    return expression;
                }
            }