فهرست منبع

Updated filter to not longe ruse Expressions.

Kenric Nugteren 8 ماه پیش
والد
کامیت
1165f49e63
2فایلهای تغییر یافته به همراه6 افزوده شده و 13 حذف شده
  1. 2 7
      prs.classes/EnclosedEntities/Dimensions/Dimensions.cs
  2. 4 6
      prs.desktop/Panels/Tasks/TaskPanel.xaml.cs

+ 2 - 7
prs.classes/EnclosedEntities/Dimensions/Dimensions.cs

@@ -241,13 +241,8 @@ namespace Comal.Classes
 
         public static Filter<T> DimensionEquals<T>(this Filter<T> filter, IDimensions dim)
         {
-            if (!CoreUtils.TryFindMemberExpression(filter.Expression, out var mexp))
-            {
-                throw new ArgumentException("Filter expression is not a MemberExpression");
-            }
-            var prop = CoreUtils.GetFullPropertyName(mexp, ".") + ".";
-
-            filter.Expression = CoreUtils.GetMemberExpression(typeof(T), prop + unitid.Property);
+            var prop = filter.Property + ".";
+            filter.Property = prop + unitid.Property;
             filter.IsEqualTo(dim.Unit.ID);
 
             filter.And(prop + quantity.Property).IsEqualTo(dim.Quantity);

+ 4 - 6
prs.desktop/Panels/Tasks/TaskPanel.xaml.cs

@@ -39,10 +39,9 @@ public class TaskPanelFilterButton : FilterButton<Kanban>
         {
             return new Filter<Kanban>().All();
         }
-        else if (CoreUtils.TryFindMemberExpression(kanbanFilter.Expression, out var mexp))
+        else if (!kanbanFilter.Property.IsNullOrWhiteSpace())
         {
-            var prop = CoreUtils.GetFullPropertyName(mexp, ".");
-            var filter = new Filter<Kanban>(prop)
+            var filter = new Filter<Kanban>(kanbanFilter.Property)
             {
                 Operator = kanbanFilter.Operator,
                 Value = kanbanFilter.Value
@@ -65,10 +64,9 @@ public class TaskPanelFilterButton : FilterButton<Kanban>
         {
             return new Filter<KanbanSubscriber>().All();
         }
-        else if (CoreUtils.TryFindMemberExpression(kanbanFilter.Expression, out var mexp))
+        else if (!kanbanFilter.Property.IsNullOrWhiteSpace())
         {
-            var prop = CoreUtils.GetFullPropertyName(mexp, ".");
-            var filter = new Filter<KanbanSubscriber>(nameof(KanbanSubscriber.Kanban) + "." + prop)
+            var filter = new Filter<KanbanSubscriber>(nameof(KanbanSubscriber.Kanban) + "." + kanbanFilter.Property)
             {
                 Operator = kanbanFilter.Operator,
                 Value = kanbanFilter.Value