Beispiel #1
0
        private string GetNameFromArgument(Expression argument)
        {
            if (argument is ConstantExpression constantExpression)
            {
                return(constantExpression.Value.ToString());
            }

            if (JavascriptConversionExtensions.IsWrappedConstantExpression(argument))
            {
                LinqPathProvider.GetValueFromExpressionWithoutConversion(argument, out var value);
                return(value.ToString());
            }

            if (argument is ParameterExpression p)
            {
                Parameters ??= new List <string>();
                Parameters.Add(p.Name);
                return(p.Name);
            }

            throw new InvalidOperationException("Invalid TimeSeries argument " + argument);
        }
Beispiel #2
0
        protected override Expression VisitMember(MemberExpression node)
        {
            if (node.Expression is MemberExpression innerMember &&
                IsWhereAlias(innerMember.Expression) &&
                innerMember.Member.Name == "Value" &&
                innerMember.Type != typeof(double))
            {
                // e.g. 'Where(entry => entry.Value.NamedVal ... )'
                // do not include 'entry.Value' in generated RQL, just 'NamedVal'
                return(Expression.Parameter(node.Type, node.Member.Name));
            }

            if (IsWhereAlias(node.Expression))
            {
                return(Expression.Parameter(node.Type, node.Member.Name));
            }

            if (JavascriptConversionExtensions.IsWrappedConstantExpression(node))
            {
                return(AddAsQueryParameter(node));
            }

            return(base.VisitMember(node));
        }