Ver código fonte

Form role lookups defined

Kenric Nugteren 2 anos atrás
pai
commit
02b1446952

+ 16 - 1
prs.classes/Entities/Assignment/AssignmentFormLookups.cs

@@ -1,12 +1,27 @@
 using InABox.Core;
 using InABox.Core;
+using System;
 
 
 namespace Comal.Classes
 namespace Comal.Classes
 {
 {
-    public class AssignmentFormLookups : ILookupDefinition<DigitalForm, AssignmentForm>
+    public class AssignmentFormLookups : ILookupDefinition<DigitalForm, AssignmentForm>, ILookupDefinition<DigitalForm, Assignment>
     {
     {
         public Filter<DigitalForm> DefineFilter(AssignmentForm[] items)
         public Filter<DigitalForm> DefineFilter(AssignmentForm[] items)
         {
         {
             return new Filter<DigitalForm>(x => x.Active).IsEqualTo(true).And(x => x.AppliesTo).IsEqualTo("Assignment");
             return new Filter<DigitalForm>(x => x.Active).IsEqualTo(true).And(x => x.AppliesTo).IsEqualTo("Assignment");
         }
         }
+
+        public Filter<DigitalForm> DefineFilter(Assignment[] items)
+        {
+            var filter = DefineFilter(Array.Empty<AssignmentForm>());
+
+            foreach (var assignment in items)
+            {
+                filter.And(x => x.ID).InQuery(
+                    new Filter<EmployeeDigitalForm>(x => x.Employee.ID).IsEqualTo(assignment.EmployeeLink.ID),
+                    x => x.Form.ID);
+            }
+
+            return filter;
+        }
     }
     }
 }
 }

+ 16 - 1
prs.classes/Entities/Employee/EmployeeForm.cs

@@ -1,4 +1,5 @@
 using InABox.Core;
 using InABox.Core;
+using System;
 
 
 namespace Comal.Classes
 namespace Comal.Classes
 {
 {
@@ -6,11 +7,25 @@ namespace Comal.Classes
     {
     {
     }
     }
 
 
-    public class EmployeeFormLookups : ILookupDefinition<DigitalForm, EmployeeForm>
+    public class EmployeeFormLookups : ILookupDefinition<DigitalForm, EmployeeForm>, ILookupDefinition<DigitalForm, Employee>
     {
     {
         public Filter<DigitalForm> DefineFilter(EmployeeForm[] items)
         public Filter<DigitalForm> DefineFilter(EmployeeForm[] items)
         {
         {
             return new Filter<DigitalForm>(x => x.Active).IsEqualTo(true).And(x => x.AppliesTo).IsEqualTo("Employee");
             return new Filter<DigitalForm>(x => x.Active).IsEqualTo(true).And(x => x.AppliesTo).IsEqualTo("Employee");
         }
         }
+
+        public Filter<DigitalForm> DefineFilter(Employee[] items)
+        {
+            var filter = DefineFilter(Array.Empty<EmployeeForm>());
+
+            foreach (var employee in items)
+            {
+                filter.And(x => x.ID).InQuery(
+                    new Filter<EmployeeDigitalForm>(x => x.Employee.ID).IsEqualTo(employee.ID),
+                    x => x.Form.ID);
+            }
+
+            return filter;
+        }
     }
     }
 }
 }

+ 16 - 1
prs.classes/Entities/LeaveRequest/LeaveRequestFormLookups.cs

@@ -1,12 +1,27 @@
 using InABox.Core;
 using InABox.Core;
+using System;
 
 
 namespace Comal.Classes
 namespace Comal.Classes
 {
 {
-    public class LeaveRequestFormLookups : ILookupDefinition<DigitalForm, LeaveRequestForm>
+    public class LeaveRequestFormLookups : ILookupDefinition<DigitalForm, LeaveRequestForm>, ILookupDefinition<DigitalForm, LeaveRequest>
     {
     {
         public Filter<DigitalForm> DefineFilter(LeaveRequestForm[] items)
         public Filter<DigitalForm> DefineFilter(LeaveRequestForm[] items)
         {
         {
             return new Filter<DigitalForm>(x => x.Active).IsEqualTo(true).And(x => x.AppliesTo).IsEqualTo("LeaveRequest");
             return new Filter<DigitalForm>(x => x.Active).IsEqualTo(true).And(x => x.AppliesTo).IsEqualTo("LeaveRequest");
         }
         }
+
+        public Filter<DigitalForm> DefineFilter(LeaveRequest[] items)
+        {
+            var filter = DefineFilter(Array.Empty<LeaveRequestForm>());
+
+            foreach (var leaveRequest in items)
+            {
+                filter.And(x => x.ID).InQuery(
+                    new Filter<EmployeeDigitalForm>(x => x.Employee.ID).IsEqualTo(leaveRequest.EmployeeLink.ID),
+                    x => x.Form.ID);
+            }
+
+            return filter;
+        }
     }
     }
 }
 }

+ 16 - 1
prs.classes/Entities/Timesheet/TimeSheetFormLookups.cs

@@ -1,12 +1,27 @@
 using InABox.Core;
 using InABox.Core;
+using System;
 
 
 namespace Comal.Classes
 namespace Comal.Classes
 {
 {
-    public class TimeSheetFormLookups : ILookupDefinition<DigitalForm, TimeSheetForm>
+    public class TimeSheetFormLookups : ILookupDefinition<DigitalForm, TimeSheetForm>, ILookupDefinition<DigitalForm, TimeSheet>
     {
     {
         public Filter<DigitalForm> DefineFilter(TimeSheetForm[] items)
         public Filter<DigitalForm> DefineFilter(TimeSheetForm[] items)
         {
         {
             return new Filter<DigitalForm>(x => x.Active).IsEqualTo(true).And(x => x.AppliesTo).IsEqualTo("TimeSheet");
             return new Filter<DigitalForm>(x => x.Active).IsEqualTo(true).And(x => x.AppliesTo).IsEqualTo("TimeSheet");
         }
         }
+
+        public Filter<DigitalForm> DefineFilter(TimeSheet[] items)
+        {
+            var filter = DefineFilter(Array.Empty<TimeSheetForm>());
+
+            foreach (var timesheet in items)
+            {
+                filter.And(x => x.ID).InQuery(
+                    new Filter<EmployeeDigitalForm>(x => x.Employee.ID).IsEqualTo(timesheet.EmployeeLink.ID),
+                    x => x.Form.ID);
+            }
+
+            return filter;
+        }
     }
     }
 }
 }