Forráskód Böngészése

Moved ISequenceable initialiser to BaseObject.
Made CoreFilterDefinition ISequenceable.

Kenric Nugteren 1 éve
szülő
commit
58a255ed59

+ 10 - 0
InABox.Core/BaseObject.cs

@@ -65,6 +65,16 @@ namespace InABox.Core
                     OnPropertyChanged(n, b, a);
             };
             DatabaseSchema.InitializeObject(this);
+            
+            CheckSequence();
+        }
+
+        private void CheckSequence()
+        {
+            if (this is ISequenceable seq && seq.Sequence <= 0)
+            {
+                seq.Sequence = CoreUtils.GenerateSequence();
+            }
         }
 
         #region Observing Flags

+ 6 - 3
InABox.Core/CoreFilterDefinition.cs

@@ -5,15 +5,18 @@ using System.Collections.Generic;
 
 namespace InABox.Core
 {
-    public class CoreFilterDefinition : BaseObject
+    public class CoreFilterDefinition : BaseObject, ISequenceable
     {
         [EditorSequence(1)]
         [TextBoxEditor]
-        public string Name { get; set; }
+        public string Name { get; set; } = "";
 
         [EditorSequence(2)]
         [FilterEditor]
-        public string Filter { get; set; }
+        public string Filter { get; set; } = "";
+
+        [NullEditor]
+        public long Sequence { get; set; }
 
         public Filter<T>? AsFilter<T>()
         {

+ 0 - 15
InABox.Core/Entity.cs

@@ -176,12 +176,6 @@ namespace InABox.Core
         //[NullEditor]
         //public List<EntityHistory> History { get; set; }
 
-        protected override void Init()
-        {
-            base.Init();
-            //History = new List<EntityHistory>();            
-            CheckSequence();
-        }
 
         //public Entity() : base()
         //{
@@ -220,15 +214,6 @@ namespace InABox.Core
             return null;
         }
 
-        private void CheckSequence()
-        {
-            if (this is ISequenceable seq && seq.Sequence <= 0)
-            {
-                seq.Sequence = CoreUtils.GenerateSequence();
-            }
-        }
-
-
         protected override void SetChanged(string name, object? before, object? after)
         {
             base.SetChanged(name, before, after);

+ 4 - 1
inabox.wpf/DynamicGrid/DynamicGridFilterGrid.cs

@@ -58,7 +58,7 @@ namespace InABox.DynamicGrid
                 result.LoadColumns(typeof(CoreFilterDefinition));
             else
                 foreach (var column in columns.Items)
-                    result.Columns.Add(new CoreColumn { ColumnName = column.ToString(), DataType = column.Expression.Type });
+                    result.Columns.Add(new CoreColumn { ColumnName = column.Property, DataType = column.Expression.Type });
             result.LoadRows(Filters);
             action.Invoke(result, null);
         }
@@ -66,7 +66,10 @@ namespace InABox.DynamicGrid
         public override void SaveItem(CoreFilterDefinition item)
         {
             if (!Filters.Contains(item))
+            {
                 Filters.Add(item);
+            }
+            Filters.Sort((x, y) => x.Sequence.CompareTo(y.Sequence));
         }
     }
 }