Exemple #1
0
        public override SQ.Entity OnBuildQueryNode(QueryBuilderContext context, bool allowReuse)
        {
            // Find a node
            if (ChildContainer.ChildEntityNodes.Count > 1)
            {
                throw new Exception("Cross-join in report calculations are unsupported.");
            }

            SQ.Entity reportNode;
            if (ChildContainer.ChildEntityNodes.Count == 0)
            {
                reportNode = new SingleRowNode( );
            }
            else
            {
                reportNode = ChildContainer.ChildEntityNodes.Single( ).BuildQueryNode(context, false);
            }

            // Attach conditions
            ScalarExpression condition = Right.BuildQuery(context);

            if (reportNode.Conditions == null)
            {
                reportNode.Conditions = new List <ScalarExpression>();
            }
            reportNode.Conditions.Add(condition);

            return(reportNode);
        }
Exemple #2
0
        protected override ScalarExpression OnBuildQuery(QueryBuilderContext context)
        {
            var result = new ComparisonExpression
            {
                Operator    = InvertResult ? ComparisonOperator.NotLike : ComparisonOperator.Like,
                Expressions = new List <ScalarExpression>
                {
                    Left.BuildQuery(context),
                    Right.BuildQuery(context)
                }
            };

            return(result);
        }
        protected override ScalarExpression OnBuildQuery(QueryBuilderContext context)
        {
            var result = new CalculationExpression
            {
                Operator     = CalculationOperator.DateDiff,
                DateTimePart = DateTimePart,
                Expressions  = new List <ScalarExpression>
                {
                    Left.BuildQuery(context),
                    Right.BuildQuery(context)
                }
            };

            return(result);
        }
Exemple #4
0
        protected override ScalarExpression OnBuildQuery(QueryBuilderContext context)
        {
            var result = new CalculationExpression
            {
                Operator     = CalculationOperator.DateAdd,
                DateTimePart = DateTimePart,
                InputType    = InputType.Type,
                Expressions  = new List <ScalarExpression>
                {
                    // Caution.. CalculationOperator.DateAdd was implemented backwards
                    Right.BuildQuery(context),
                    Left.BuildQuery(context)
                }
            };

            return(result);
        }