Browse Source

Added default start number to AutoIncrement entities

frankvandenbos 2 months ago
parent
commit
b932ac7942

+ 5 - 14
InABox.Core/DigitalForms/Forms/DigitalFormLayout.cs

@@ -42,21 +42,12 @@ namespace InABox.Core
             return x => x.Code;
             return x => x.Code;
         }
         }
 
 
-        public Filter<DigitalFormLayout> AutoIncrementFilter()
-        {
-            return new Filter<DigitalFormLayout>(x => x.Form.ID).IsEqualTo(Form.ID);
-        }
-
+        public Filter<DigitalFormLayout> AutoIncrementFilter() => new Filter<DigitalFormLayout>(x => x.Form.ID).IsEqualTo(Form.ID);
         public string AutoIncrementPrefix() => "L";
         public string AutoIncrementPrefix() => "L";
+        public string AutoIncrementFormat() => "{0:D3}";
+        public int AutoIncrementDefault() => 1;
 
 
-        public string AutoIncrementFormat()
-        {
-            return "{0:D3}";
-        }
-
-        public IEntityDuplicator GetDuplicator()
-        {
-            return new EntityDuplicator<DigitalFormLayout>();
-        }
+        public IEntityDuplicator GetDuplicator() => new EntityDuplicator<DigitalFormLayout>();
+        
     }
     }
 }
 }

+ 4 - 15
InABox.Core/DigitalForms/Forms/DigitalFormVariable.cs

@@ -100,22 +100,11 @@ namespace InABox.Core
         [NullEditor]
         [NullEditor]
         public long Sequence { get; set; }
         public long Sequence { get; set; }
 
 
-        public Expression<Func<DigitalFormVariable, string>> AutoIncrementField()
-        {
-            return x => x.Code;
-        }
-
-        public Filter<DigitalFormVariable> AutoIncrementFilter()
-        {
-            return new Filter<DigitalFormVariable>(x => x.Form.ID).IsEqualTo(Form.ID);
-        }
-
+        public Expression<Func<DigitalFormVariable, string>> AutoIncrementField() => x => x.Code;
+        public Filter<DigitalFormVariable> AutoIncrementFilter() => new Filter<DigitalFormVariable>(x => x.Form.ID).IsEqualTo(Form.ID);
         public string AutoIncrementPrefix() => "V";
         public string AutoIncrementPrefix() => "V";
-
-        public string AutoIncrementFormat()
-        {
-            return "{0:D3}";
-        }
+        public string AutoIncrementFormat() => "{0:D3}";
+        public int AutoIncrementDefault() => 1;
 
 
         public DFLayoutFieldProperties GetProperties() => _properties;
         public DFLayoutFieldProperties GetProperties() => _properties;
 
 

+ 1 - 3
InABox.Core/DigitalForms/Forms/EntityForm.cs

@@ -20,12 +20,10 @@ namespace InABox.Core
     {
     {
 
 
         public Expression<Func<TThis, string>> AutoIncrementField() => x => x.Number;
         public Expression<Func<TThis, string>> AutoIncrementField() => x => x.Number;
-
         public abstract string AutoIncrementPrefix();
         public abstract string AutoIncrementPrefix();
-
         public virtual string AutoIncrementFormat() => "{0:D6}";
         public virtual string AutoIncrementFormat() => "{0:D6}";
-        
         public Filter<TThis>? AutoIncrementFilter() => null;
         public Filter<TThis>? AutoIncrementFilter() => null;
+        public int AutoIncrementDefault() => 1;
         
         
         [EditorSequence(1)]
         [EditorSequence(1)]
         [CodeEditor(Editable = Editable.Disabled)]
         [CodeEditor(Editable = Editable.Disabled)]

+ 1 - 0
InABox.Core/Objects/Entity.cs

@@ -412,6 +412,7 @@ namespace InABox.Core
     {
     {
         Expression<Func<T, TType>> AutoIncrementField();
         Expression<Func<T, TType>> AutoIncrementField();
         Filter<T>? AutoIncrementFilter();
         Filter<T>? AutoIncrementFilter();
+        int AutoIncrementDefault();
     }
     }
 
 
     public interface INumericAutoIncrement<T> : IAutoIncrement<T, int>
     public interface INumericAutoIncrement<T> : IAutoIncrement<T, int>

+ 1 - 1
InABox.Database/Stores/Store.cs

@@ -321,7 +321,7 @@ namespace InABox.Database
                         .Select(int.Parse)
                         .Select(int.Parse)
                         .OrderBy(x=>x)
                         .OrderBy(x=>x)
                         .ToArray(); 
                         .ToArray(); 
-                    var maxvalue = iValues.Any() ? iValues.Max() : 0;
+                    var maxvalue = iValues.Any() ? iValues.Max() : autoinc.AutoIncrementDefault() - 1;
                     
                     
                     foreach (var entity in requiredEntities)
                     foreach (var entity in requiredEntities)
                     {
                     {