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); }
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); }
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); }