public override Expression VisitMissingSearchParameter(MissingSearchParameterExpression expression, object context)
        {
            if (expression.IsMissing)
            {
                return(Expression.MissingSearchParameter(expression.Parameter, false));
            }

            return(expression);
        }
Пример #2
0
        public override Expression VisitMissingSearchParameter(MissingSearchParameterExpression expression, object context)
        {
            if (expression.Parameter.Code == SearchParameterNames.LastUpdated)
            {
                return(Expression.MissingSearchParameter(SqlSearchParameters.ResourceSurrogateIdParameter, expression.IsMissing));
            }

            return(expression);
        }
        public static void ValidateMissingParamExpression(
            Expression expression,
            string expectedParamName,
            bool expectedIsMissing)
        {
            MissingSearchParameterExpression mpExpression = Assert.IsType <MissingSearchParameterExpression>(expression);

            Assert.Equal(expectedParamName, mpExpression.Parameter.Name);
            Assert.Equal(expectedIsMissing, mpExpression.IsMissing);
        }
Пример #4
0
        public void Visit(MissingSearchParameterExpression expression)
        {
            if (expression.Parameter.Name == SearchParameterNames.ResourceType)
            {
                // this will always be present
                _queryBuilder.Append(expression.IsMissing ? "false" : "true");
            }
            else
            {
                AppendSubquery(expression.Parameter.Name, null, negate: expression.IsMissing);
            }

            _queryBuilder.AppendLine();
        }
Пример #5
0
        public object VisitMissingSearchParameter(MissingSearchParameterExpression expression, Context context)
        {
            if (expression.Parameter.Code == SearchParameterNames.ResourceType)
            {
                // this will always be present
                _queryBuilder.Append(expression.IsMissing ? "false" : "true");
            }
            else
            {
                AppendSubquery(expression.Parameter.Code, null, negate: expression.IsMissing, context: context);
            }

            _queryBuilder.AppendLine();

            return(null);
        }
        public override SearchParameterQueryGeneratorContext VisitMissingSearchParameter(MissingSearchParameterExpression expression, SearchParameterQueryGeneratorContext context)
        {
            // Call this method but discard the result to ensure the search parameter is one we are expecting.
            GetSearchParameterQueryGenerator(expression);

            context.StringBuilder.Append(expression.IsMissing ? " 1 = 0 " : " 1 = 1 ");
            return(context);
        }
Пример #7
0
        public override SearchParameterQueryGeneratorContext VisitMissingSearchParameter(MissingSearchParameterExpression expression, SearchParameterQueryGeneratorContext context)
        {
            Debug.Assert(!expression.IsMissing, "IsMissing=true expressions should have been rewritten");

            short          searchParamId       = context.Model.GetSearchParamId(expression.Parameter.Url);
            SmallIntColumn searchParamIdColumn = VLatest.SearchParam.SearchParamId;

            context.StringBuilder
            .Append(searchParamIdColumn, context.TableAlias)
            .Append(" = ")
            .AppendLine(context.Parameters.AddParameter(searchParamIdColumn, searchParamId).ParameterName);

            return(context);
        }
 public NormalizedSearchParameterQueryGenerator VisitMissingSearchParameter(MissingSearchParameterExpression expression, object context)
 {
     return(VisitSearchParameterExpressionBase(expression.Parameter, null, context));
 }
 public override bool VisitMissingSearchParameter(MissingSearchParameterExpression expression, object context)
 {
     return(expression.IsMissing);
 }
        public override SearchParameterQueryGeneratorContext VisitMissingSearchParameter(MissingSearchParameterExpression expression, SearchParameterQueryGeneratorContext context)
        {
            SearchParameterQueryGenerator delegatedGenerator = GetSearchParameterQueryGeneratorIfResourceColumnSearchParameter(expression);

            if (delegatedGenerator != null)
            {
                // This is a search parameter over a column that exists on the Resource table or both the Resource table and search parameter tables.
                // Delegate to the visitor specific to it.
                return(expression.AcceptVisitor(delegatedGenerator, context));
            }

            Debug.Assert(!expression.IsMissing, "IsMissing=true expressions should have been rewritten");

            short          searchParamId       = context.Model.GetSearchParamId(expression.Parameter.Url);
            SmallIntColumn searchParamIdColumn = VLatest.SearchParam.SearchParamId;

            context.StringBuilder
            .Append(searchParamIdColumn, context.TableAlias)
            .Append(" = ")
            .AppendLine(context.Parameters.AddParameter(searchParamIdColumn, searchParamId, true).ParameterName);

            return(context);
        }
Пример #11
0
 public override SearchParameterQueryGeneratorContext VisitMissingSearchParameter(MissingSearchParameterExpression expression, SearchParameterQueryGeneratorContext context)
 {
     context.StringBuilder.Append(expression.IsMissing ? " 1 = 0 " : " 1 = 1 ");
     return(context);
 }
 public override SearchParameterQueryGeneratorContext VisitMissingSearchParameter(MissingSearchParameterExpression expression, SearchParameterQueryGeneratorContext context)
 {
     return(expression.AcceptVisitor(GetSearchParameterQueryGenerator(expression), context));
 }