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