/// <inheritdoc/> protected override void RenderConvertedConstant(ConstantExpression constantExpression, IN1QlExpressionTreeVisitor expressionTreeVisitor) { if (constantExpression.Value == null) { // Don't try to convert nulls expressionTreeVisitor.Visit(constantExpression); } else { using (var writer = new JTokenWriter()) { _jsonConverter.WriteJson(writer, constantExpression.Value, JsonSerializer.CreateDefault()); expressionTreeVisitor.Visit(Expression.Constant(writer.Token.ToString())); } } }
/// <inheritdoc/> public virtual void RenderConvertFrom(Expression innerExpression, IN1QlExpressionTreeVisitor expressionTreeVisitor) { var unwrapped = UnwrapInverseMethod(innerExpression, ConvertToMethods.Values); if (unwrapped != null) { expressionTreeVisitor.Visit(unwrapped); } else { RenderConvertFromMethod(innerExpression, expressionTreeVisitor); } }
/// <inheritdoc/> protected override void RenderConvertedConstant(ConstantExpression constantExpression, IN1QlExpressionTreeVisitor expressionTreeVisitor) { if (constantExpression.Value == null) { // Don't try to convert nulls expressionTreeVisitor.Visit(constantExpression); } else { var dateTime = GetDateTime(constantExpression); var unixMilliseconds = (dateTime - UnixEpoch).TotalMilliseconds; // ReSharper disable once CompareOfFloatsByEqualityOperator if (Math.Floor(unixMilliseconds) == unixMilliseconds) { expressionTreeVisitor.Expression.Append((long)unixMilliseconds); } else { expressionTreeVisitor.Expression.Append(unixMilliseconds); } } }
/// <inheritdoc/> protected override void RenderConvertFromMethod(Expression innerExpression, IN1QlExpressionTreeVisitor expressionTreeVisitor) { expressionTreeVisitor.Expression.Append("MILLIS_TO_STR("); expressionTreeVisitor.Visit(innerExpression); expressionTreeVisitor.Expression.Append(')'); }
/// <inheritdoc/> protected override void RenderConvertFromMethod(Expression innerExpression, IN1QlExpressionTreeVisitor expressionTreeVisitor) { // Don't try to convert in N1QL, for enums we're only supporting constants as strings expressionTreeVisitor.Visit(innerExpression); }
protected override void RenderConvertToMethod(Expression innerExpression, IN1QlExpressionTreeVisitor expressionTreeVisitor) { expressionTreeVisitor.Visit(innerExpression); }
protected override void RenderConvertedConstant(ConstantExpression constantExpression, IN1QlExpressionTreeVisitor expressionTreeVisitor) { expressionTreeVisitor.Expression.Append("'"); expressionTreeVisitor.Visit(constantExpression); expressionTreeVisitor.Expression.Append("'"); }