Prechádzať zdrojové kódy

Refactored EntityFormStore and EntityDocumentStore into folders
Added DigitalFormDocumentStore class

frogsoftware 1 rok pred
rodič
commit
b4a1a7c5ac

+ 29 - 0
prs.mobile.new/PRS.Mobile/Data Models/Lists/DigitalForm/DigitalFormDocumentShell.cs

@@ -0,0 +1,29 @@
+using System;
+using System.IO;
+using System.Linq;
+using InABox.Core;
+using InABox.Mobile;
+using Xamarin.Forms;
+
+namespace PRS.Mobile
+{
+    public class DigitalFormDocumentShell : Shell<DigitalFormModel, DigitalFormDocument>, IDocumentShell
+    {
+        protected override void ConfigureColumns(ShellColumns<DigitalFormModel, DigitalFormDocument> columns)
+        {
+            columns
+                .Map(nameof(EntityID), x => x.EntityLink.ID)
+                .Map(nameof(FileName), x => x.DocumentLink.FileName)
+                .Map(nameof(_thumbnail), x => x.Thumbnail);
+        }
+
+        public Guid EntityID => Get<Guid>();
+        
+        public String FileName => Get<String>();
+        
+        private byte[] _thumbnail => Get<byte[]>();
+        public ImageSource Thumbnail => ImageSource.FromStream(() => new MemoryStream(_thumbnail));
+        
+        public DigitalFormShell Form => Parent.Items.FirstOrDefault(x => Guid.Equals(x.ID, ID));
+    }
+}

+ 5 - 0
prs.stores/EntityDocuments/DigitalFormDocumentStore.cs

@@ -0,0 +1,5 @@
+using InABox.Core;
+
+namespace PRSStores;
+
+public class DigitalFormDocumentStore : EntityDocumentStore<DigitalFormDocument, DigitalForm, DigitalFormLink> { }

+ 2 - 8
prs.stores/EntityDocumentStore.cs → prs.stores/EntityDocuments/EntityDocumentStore.cs

@@ -1,5 +1,4 @@
-using Comal.Classes;
-using Comal.Stores;
+using Comal.Stores;
 using InABox.Core;
 using System;
 using System.Linq;
@@ -10,6 +9,7 @@ using System.Drawing.Imaging;
 
 namespace PRSStores
 {
+    //In order to have BeforeSave active for a specific EntityDocument, it has to be concretized from this abstract class
     public abstract class EntityDocumentStore<TEntityDocument, TEntity, TEntityLink> : BaseStore<TEntityDocument>
         where TEntityDocument : EntityDocument<TEntityLink>, new()
         where TEntityLink : EntityLink<TEntity>, new()
@@ -54,10 +54,4 @@ namespace PRSStores
         }
     }
 
-    //In order to have BeforeSave active for a specific EntityDocument, it has to be concretized as below
-    public class JobDocumentSetSetMileStoneFileStore : EntityDocumentStore<JobDocumentSetMileStoneFile, JobDocumentSetMileStone, JobDocumentSetMileStoneLink> { }
-
-    public class MeetingItemDocumentStore : EntityDocumentStore<MeetingItemDocument, MeetingItem, MeetingItemLink> { }
-
-    public class SetoutDocumentStore : EntityDocumentStore<SetoutDocument, Setout, SetoutLink> { }
 }

+ 5 - 0
prs.stores/EntityDocuments/JobDocumentSetSetMileStoneFileStore.cs

@@ -0,0 +1,5 @@
+using Comal.Classes;
+
+namespace PRSStores;
+
+public class JobDocumentSetSetMileStoneFileStore : EntityDocumentStore<JobDocumentSetMileStoneFile, JobDocumentSetMileStone, JobDocumentSetMileStoneLink> { }

+ 5 - 0
prs.stores/EntityDocuments/MeetingItemDocumentStore.cs

@@ -0,0 +1,5 @@
+using Comal.Classes;
+
+namespace PRSStores;
+
+public class MeetingItemDocumentStore : EntityDocumentStore<MeetingItemDocument, MeetingItem, MeetingItemLink> { }

+ 5 - 0
prs.stores/EntityDocuments/SetoutDocumentStore.cs

@@ -0,0 +1,5 @@
+using Comal.Classes;
+
+namespace PRSStores;
+
+public class SetoutDocumentStore : EntityDocumentStore<SetoutDocument, Setout, SetoutLink> { }

+ 14 - 0
prs.stores/EntityForms/AssignmentFormStore.cs

@@ -0,0 +1,14 @@
+#nullable enable
+using Comal.Classes;
+using InABox.Core;
+
+namespace Comal.Stores;
+
+public class AssignmentFormStore : EntityFormStore<AssignmentForm, Assignment, AssignmentLink>
+{
+    protected override void UpdateParentStatus(IDigitalFormInstance instance, Assignment parent)
+    {
+        if (instance.FormCompleted.IsEmpty() != parent.Completed.IsEmpty())
+            parent.Completed = instance.FormCompleted;
+    }
+}

+ 8 - 0
prs.stores/EntityForms/EmployeeFormStore.cs

@@ -0,0 +1,8 @@
+#nullable enable
+using Comal.Classes;
+
+namespace Comal.Stores;
+
+public class EmployeeFormStore : EntityFormStore<EmployeeForm, Employee, EmployeeLink>
+{
+}

+ 0 - 60
prs.stores/EntityFormStore.cs → prs.stores/EntityForms/EntityFormStore.cs

@@ -140,64 +140,4 @@ namespace Comal.Stores
             
         }
     }
-
-    public class AssignmentFormStore : EntityFormStore<AssignmentForm, Assignment, AssignmentLink>
-    {
-        protected override void UpdateParentStatus(IDigitalFormInstance instance, Assignment parent)
-        {
-            if (instance.FormCompleted.IsEmpty() != parent.Completed.IsEmpty())
-                parent.Completed = instance.FormCompleted;
-        }
-    }
-
-    public class LeaveRequestFormStore : EntityFormStore<LeaveRequestForm, LeaveRequest, LeaveRequestLink>
-    {
-        protected override void UpdateParentStatus(IDigitalFormInstance form, LeaveRequest parent)
-        {
-            base.UpdateParentStatus(form, parent);
-            if (!form.FormCancelled.IsEmpty())
-            {
-                parent.Status = LeaveRequestStatus.Rejected;
-                parent.StatusNotes = $"{parent.StatusNotes}\nLeave Form cancelled by user".Trim();
-            }
-            else if (!form.FormCompleted.IsEmpty())
-            {
-                if (parent.Status == LeaveRequestStatus.NotSubmitted)
-                {
-                    parent.Status = LeaveRequestStatus.InProgress;
-                    parent.StatusNotes = $"{parent.StatusNotes}\nLeave Form submitted by user".Trim();
-                }
-            }
-            else
-            {
-                parent.Status = LeaveRequestStatus.NotSubmitted;
-                parent.StatusNotes = $"{parent.StatusNotes}\nLeave Form re-opened by user".Trim();
-            }
-        }
-    }
-
-    public class JobITPFormStore : EntityFormStore<JobITPForm, JobITP, JobITPLink>
-    {
-    }
-
-    public class JobFormStore : EntityFormStore<JobForm, Job, JobLink>
-    {
-    }
-
-    public class EmployeeFormStore : EntityFormStore<EmployeeForm, Employee, EmployeeLink>
-    {
-    }
-
-    public class TimeSheetFormStore : EntityFormStore<TimeSheetForm, TimeSheet, TimeSheetLink>
-    {
-    }
-
-    public class KanbanFormStore : EntityFormStore<KanbanForm, Kanban, KanbanLink>
-    {
-        protected override void UpdateParentStatus(IDigitalFormInstance instance, Kanban parent)
-        {
-            if (instance.FormCompleted.IsEmpty() != parent.Completed.IsEmpty())
-                parent.Completed = instance.FormCompleted;
-        }
-    }
 }

+ 8 - 0
prs.stores/EntityForms/JobFormStore.cs

@@ -0,0 +1,8 @@
+#nullable enable
+using Comal.Classes;
+
+namespace Comal.Stores;
+
+public class JobFormStore : EntityFormStore<JobForm, Job, JobLink>
+{
+}

+ 8 - 0
prs.stores/EntityForms/JobITPFormStore.cs

@@ -0,0 +1,8 @@
+#nullable enable
+using Comal.Classes;
+
+namespace Comal.Stores;
+
+public class JobITPFormStore : EntityFormStore<JobITPForm, JobITP, JobITPLink>
+{
+}

+ 14 - 0
prs.stores/EntityForms/KanbanFormStore.cs

@@ -0,0 +1,14 @@
+#nullable enable
+using Comal.Classes;
+using InABox.Core;
+
+namespace Comal.Stores;
+
+public class KanbanFormStore : EntityFormStore<KanbanForm, Kanban, KanbanLink>
+{
+    protected override void UpdateParentStatus(IDigitalFormInstance instance, Kanban parent)
+    {
+        if (instance.FormCompleted.IsEmpty() != parent.Completed.IsEmpty())
+            parent.Completed = instance.FormCompleted;
+    }
+}

+ 31 - 0
prs.stores/EntityForms/LeaveRequestFormStore.cs

@@ -0,0 +1,31 @@
+#nullable enable
+using Comal.Classes;
+using InABox.Core;
+
+namespace Comal.Stores;
+
+public class LeaveRequestFormStore : EntityFormStore<LeaveRequestForm, LeaveRequest, LeaveRequestLink>
+{
+    protected override void UpdateParentStatus(IDigitalFormInstance form, LeaveRequest parent)
+    {
+        base.UpdateParentStatus(form, parent);
+        if (!form.FormCancelled.IsEmpty())
+        {
+            parent.Status = LeaveRequestStatus.Rejected;
+            parent.StatusNotes = $"{parent.StatusNotes}\nLeave Form cancelled by user".Trim();
+        }
+        else if (!form.FormCompleted.IsEmpty())
+        {
+            if (parent.Status == LeaveRequestStatus.NotSubmitted)
+            {
+                parent.Status = LeaveRequestStatus.InProgress;
+                parent.StatusNotes = $"{parent.StatusNotes}\nLeave Form submitted by user".Trim();
+            }
+        }
+        else
+        {
+            parent.Status = LeaveRequestStatus.NotSubmitted;
+            parent.StatusNotes = $"{parent.StatusNotes}\nLeave Form re-opened by user".Trim();
+        }
+    }
+}

+ 8 - 0
prs.stores/EntityForms/TimeSheetFormStore.cs

@@ -0,0 +1,8 @@
+#nullable enable
+using Comal.Classes;
+
+namespace Comal.Stores;
+
+public class TimeSheetFormStore : EntityFormStore<TimeSheetForm, TimeSheet, TimeSheetLink>
+{
+}

+ 13 - 2
prs.stores/PRSStores.projitems

@@ -27,8 +27,19 @@
     <Compile Include="$(MSBuildThisFileDirectory)EmployeeProductStore.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)EmployeeQualificationStore.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)EmployeeStore.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)EntityDocumentStore.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)EntityFormStore.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)EntityDocuments\DigitalFormDocumentStore.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)EntityDocuments\EntityDocumentStore.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)EntityDocuments\JobDocumentSetSetMileStoneFileStore.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)EntityDocuments\MeetingItemDocumentStore.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)EntityDocuments\SetoutDocumentStore.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)EntityForms\AssignmentFormStore.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)EntityForms\EmployeeFormStore.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)EntityForms\EntityFormStore.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)EntityForms\JobFormStore.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)EntityForms\JobITPFormStore.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)EntityForms\KanbanFormStore.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)EntityForms\LeaveRequestFormStore.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)EntityForms\TimeSheetFormStore.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)EquipmentStore.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)GPSTrackerLocationStore.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)GPSTrackerStore.cs" />