public string GetMemberQueryPath(Expression expression)
        {
            var result = linqPathProvider.GetPath(expression);

            result.Path = result.Path.Substring(result.Path.IndexOf('.') + 1);

            if (expression.NodeType == ExpressionType.ArrayLength)
            {
                result.Path += ".Length";
            }

            return(result.Path);
        }
        public static LinqPathProvider.Result ZonedDateTimeTimeToInstantTranslator(LinqPathProvider provider, Expression expression)
        {
            // Change the ZonedDateTime.ToInstant() method to use our .OffsetDateTime property instead.

            var exp    = (MethodCallExpression)expression;
            var parent = provider.GetPath(exp.Object);

            return(new LinqPathProvider.Result
            {
                MemberType = typeof(DateTimeOffset),
                IsNestedPath = false,
                Path = parent.Path + ".OffsetDateTime"
            });
        }
        public static LinqPathProvider.Result OffsetDateTimeToInstantTranslator(LinqPathProvider provider, Expression expression)
        {
            // Just send the parent path back since we are storing it as a DateTimeOffset

            var exp    = (MethodCallExpression)expression;
            var parent = provider.GetPath(exp.Object);

            return(new LinqPathProvider.Result
            {
                MemberType = exp.Method.ReturnType,
                IsNestedPath = false,
                Path = parent.Path
            });
        }
        public static LinqPathProvider.Result OffsetDateTimeLocalDateTimeTranslator(LinqPathProvider provider, Expression expression)
        {
            // Change the OffsetDateTime.LocalDateTime property to the DateTimeOffset.DateTime property

            var exp    = (MemberExpression)expression;
            var parent = provider.GetPath(exp.Expression);

            return(new LinqPathProvider.Result
            {
                MemberType = typeof(DateTime),
                IsNestedPath = false,
                Path = parent.Path + ".DateTime"
            });
        }