From 4e6dda09b540c46e10b9d44ac5186d9f4e4d0233 Mon Sep 17 00:00:00 2001 From: David Lebee Date: Mon, 2 Apr 2018 11:57:46 -0500 Subject: [PATCH] advancing well :) I think I might have it this time. --- .../BetterProto2.cs | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/PoweredSoft.DynamicLinq.ConsoleApp/BetterProto2.cs b/PoweredSoft.DynamicLinq.ConsoleApp/BetterProto2.cs index 64e9ca1..cb91644 100644 --- a/PoweredSoft.DynamicLinq.ConsoleApp/BetterProto2.cs +++ b/PoweredSoft.DynamicLinq.ConsoleApp/BetterProto2.cs @@ -26,8 +26,15 @@ namespace PoweredSoft.DynamicLinq.ConsoleApp */ public static void Run() { + // the expression parser. var ep = new ExpressionParser(typeof(Author), "Posts.Comments.Id"); - ep.Parse(); + + // the builder. + var per = new PathExpressionResolver(ep); + per.Resolve(); + + // the result expression. + var result = per.Result; } } @@ -41,6 +48,24 @@ namespace PoweredSoft.DynamicLinq.ConsoleApp public Type EnumerableType => MemberExpression.Type.GenericTypeArguments.FirstOrDefault(); } + public class PathExpressionResolver + { + public SelectNullHandling NullChecking { get; set; } = SelectNullHandling.LeaveAsIs; + public SelectCollectionHandling CollectionHandling { get; set; } = SelectCollectionHandling.LeaveAsIs; + public ExpressionParser Parser { get; protected set; } + public Expression Result { get; protected set; } + + public PathExpressionResolver(ExpressionParser parser) + { + Parser = parser; + } + + public void Resolve() + { + + } + } + public class ExpressionParser { public ParameterExpression Parameter { get; protected set; }