Browse Source

avalonia: fixing bugs with "complete and duplicate"

Kenric Nugteren 4 months ago
parent
commit
84804978ec

+ 9 - 3
PRS.Avalonia/PRS.Avalonia/Components/FormsEditor/DigitalFormsHostViewModel.cs

@@ -295,10 +295,16 @@ public partial class DigitalFormsHostViewModel<TModel, TShell, TParent, TParentL
         if (completeDuplicate)
         {
             var formid = Form.Form.ID;
-            Form = new TForm();
-            Form.Parent.ID = Parent.ID;
-            Form.Form.ID = formid;
+
+            var newForm = new TForm();
+            newForm.Parent.ID = Parent.ID;
+            newForm.Form.CopyFrom(Form.Form);
+            newForm.Description = Form.Description;
+
+            Form = newForm;
+
             Dispatcher.UIThread.Invoke(() => LoadValues(new()));
+            OnSaved?.Invoke();
         }
         else
         {

+ 1 - 0
PRS.Avalonia/PRS.Avalonia/Modules/DigitalForms/FormsViewModel.cs

@@ -85,6 +85,7 @@ public partial class FormsViewModel : ModuleViewModel
         kanbanForm.FormID = form.ID;
         kanbanForm.FormCode = form.Code;
         kanbanForm.FormDescription = form.Description;
+        kanbanForm.FormDescriptionExpression = form.DescriptionExpression;
 
         DigitalFormsHostViewModel<KanbanFormModel, KanbanFormShell, Kanban, KanbanLink, KanbanForm>.EditForm(Forms, kanbanForm, kanban.Entity);
 

+ 2 - 0
PRS.Avalonia/PRS.Avalonia/Repositories/DigitalForm/DigitalFormShell.cs

@@ -8,6 +8,7 @@ public class DigitalFormShell : Shell<DigitalFormModel, DigitalForm>
 {
     public string Code => Get<string>();
     public string Description => Get<string>();
+    public string DescriptionExpression => Get<string>();
     public string AppliesTo => Get<string>();
     public string Group => Get<string>();
 
@@ -17,6 +18,7 @@ public class DigitalFormShell : Shell<DigitalFormModel, DigitalForm>
             .Map(nameof(ID), x => x.ID)
             .Map(nameof(Code), x => x.Code)
             .Map(nameof(Description), x => x.Description)
+            .Map(nameof(DescriptionExpression), x => x.DescriptionExpression)
             .Map(nameof(AppliesTo), x => x.AppliesTo)
             .Map(nameof(Group), x => x.Group.Description);
     }

+ 7 - 0
PRS.Avalonia/PRS.Avalonia/Repositories/DigitalFormInstance/DigitalFormInstanceShell.cs

@@ -48,6 +48,12 @@ public abstract class DigitalFormInstanceShell<TModel, TParent, TParentLink, TFo
         set => Set(value);
     }
 
+    public string FormDescriptionExpression
+    {
+        get => Get<string>();
+        set => Set(value);
+    }
+
     public DateTime Created => Get<DateTime>();
 
     public DateTime Completed
@@ -82,6 +88,7 @@ public abstract class DigitalFormInstanceShell<TModel, TParent, TParentLink, TFo
             .Map(nameof(FormID), x => x.Form.ID)
             .Map(nameof(FormCode), x => x.Form.Code)
             .Map(nameof(FormDescription), x => x.Form.Description)
+            .Map(nameof(FormDescriptionExpression), x => x.Form.DescriptionExpression)
             .Map(nameof(Description), x => x.Description)
             .Map(nameof(Completed), x => x.FormCompleted)
             .Map(nameof(Started), x => x.FormStarted)