Index: ActiviteitenOpvolging/ActiviteitenOpvolging/domain/classes/implementations/Activity.vb
===================================================================
diff -u -r1729 -r1731
--- ActiviteitenOpvolging/ActiviteitenOpvolging/domain/classes/implementations/Activity.vb (.../Activity.vb) (revision 1729)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/domain/classes/implementations/Activity.vb (.../Activity.vb) (revision 1731)
@@ -1,5 +1,6 @@
Public Class Activity
Implements IActivity
+
Public Property Id As String Implements IActivity.Id
Public Property QuantityToProduce As Integer Implements IActivity.QuantityToProduce
Public Property Label As String Implements IActivity.Label
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/mappers/CacheMapper.vb
===================================================================
diff -u -r1728 -r1731
--- ActiviteitenOpvolging/ActiviteitenOpvolging/mappers/CacheMapper.vb (.../CacheMapper.vb) (revision 1728)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/mappers/CacheMapper.vb (.../CacheMapper.vb) (revision 1731)
@@ -100,13 +100,66 @@
Return sqlQueries.Item(workPostIndex)
End Function
+ '''
+ ''' Fetch all the work items for a workpost.
+ ''' The corresponding query will get fetched in here.
+ '''
+ ''' The index of the workpost, 0 based
+ ''' A list of all the work items with their activities
+ Public Function GetData(workPostIndex As Integer, employees As List(Of IEmployee)) As List(Of IWorkItem)
+ 'Fetch the query.
+ Dim query As String = FetchQuery(workPostIndex)
+
+ 'Initialise the list with work items.
+ Dim workItems As New List(Of IWorkItem)
+
+ 'Declare datareader.
+ Dim dr As OdbcDataReader = Nothing
+ Try
+ 'Execute query and store datareader.
+ dr = ExecuteIntoDataReader(query)
+
+ 'Fetch amount of activities.
+ Dim activityAmount = FetchNumberOfActivities(workPostIndex)
+
+ 'Loop through every (result) record.
+ While dr.Read()
+ 'Values of one result (line/record).
+
+ Dim workItem As New WorkItem
+ 'Fill with values.
+ With workItem
+ .BatchVisual = ExtractItemFromDataReader(dr, "BatchVisual", 0)
+ .DeliverToResource = ExtractItemFromDataReader(dr, "Naar", String.Empty)
+ .ProductGroup = ExtractItemFromDataReader(dr, "Productgroep", String.Empty)
+ .Remark = ExtractItemFromDataReader(dr, "Opmerking", String.Empty)
+ .EndTimeStamp = ExtractItemFromDataReader(dr, "EindTijdstip", DateTime.MinValue)
+ .Activities = ExtractActivities(dr, activityAmount, workItem, employees)
+ End With
+
+ 'Add to the result list.
+ workItems.Add(workItem)
+ End While
+
+ 'Return the list.
+ Return workItems
+ Catch ex As Exception
+ Throw New Exception($"An error occured while fetching the work items from Caché.{vbNewLine}{ex.Message}")
+ Finally
+ 'Close connection if datareader is not nothing.
+ If Not IsNothing(dr) Then
+ dr.Close()
+ End If
+ End Try
+ End Function
+
#Region "Activities"
'''
''' Extract all activities for one work item from the data reader.
'''
'''
'''
- Private Function ExtractActivities(dr As OdbcDataReader, numberOfActivities As Integer, workItem As IWorkItem) As List(Of IActivity)
+ Private Function ExtractActivities(dr As OdbcDataReader, numberOfActivities As Integer, workItem As IWorkItem, employees As List(Of IEmployee)) As List(Of IActivity)
'Declare result list.
Dim activities As New List(Of IActivity)
@@ -118,8 +171,6 @@
.Id = ExtractItemFromDataReader(dr, $"ActiviteitID_{i}", String.Empty)
.QuantityToProduce = ExtractItemFromDataReader(dr, $"Aantal_{i}", 0)
.Label = ExtractItemFromDataReader(dr, $"Label_{i}", String.Empty)
- 'If the quentity is 0, the status is automatically zero.
- .Status = If(.QuantityToProduce = 0, ActivityStateEnum.Zero, ActivityStateEnumMapper.GetActivityStateFromLetter(ExtractItemFromDataReader(Of Char)(dr, $"Status_{i}")))
.EmployeeInitials = ExtractItemFromDataReader(dr, $"Gebruiker_{i}", String.Empty)
.IsReadOnly = ExtractItemFromDataReader(dr, $"ReadOnly_{i}", False)
.StartTimeStamp = ExtractItemFromDataReader(dr, $"StartTijdstip_{i}", DateTime.MinValue)
@@ -128,6 +179,8 @@
.StartAlmostTimeStamp = If(.StartTimeStamp = DateTime.MinValue, DateTime.MinValue, .StartTimeStamp.Subtract(ConfigsLoader.StartAlmostTimeThreshold))
'Set parent work item.
.WorkItem = workItem
+ 'Set the current state based on the enum value. If the quantity is 0, the status is automatically zero.
+ .State = ConvertEnumValueToActivityState(If(.QuantityToProduce = 0, ActivityStateEnum.Zero, ActivityStateEnumMapper.GetActivityStateFromLetter(ExtractItemFromDataReader(Of Char)(dr, $"Status_{i}"))), activity, employees)
End With
'Add to collection of activities.
activities.Add(activity)
@@ -153,59 +206,22 @@
Return activityAmounts.Item(workPostIndex)
End Function
-#End Region
-
'''
- ''' Fetch all the work items for a workpost.
- ''' The corresponding query will get fetched in here.
+ ''' Produces an activity state based on the state enum value. The activity becomes part of the state.
'''
- ''' The index of the workpost, 0 based
- ''' A list of all the work items with their activities
- Public Function GetData(workPostIndex As Integer) As List(Of IWorkItem)
- 'Fetch the query.
- Dim query As String = FetchQuery(workPostIndex)
-
- 'Initialise the list with work items.
- Dim workItems As New List(Of IWorkItem)
-
- 'Declare datareader.
- Dim dr As OdbcDataReader = Nothing
- Try
- 'Execute query and store datareader.
- dr = ExecuteIntoDataReader(query)
-
- 'Fetch amount of activities.
- Dim activityAmount = FetchNumberOfActivities(workPostIndex)
-
- 'Loop through every (result) record.
- While dr.Read()
- 'Values of one result (line/record).
-
- Dim workItem As New WorkItem
- 'Fill with values.
- With workItem
- .BatchVisual = ExtractItemFromDataReader(dr, "BatchVisual", 0)
- .DeliverToResource = ExtractItemFromDataReader(dr, "Naar", String.Empty)
- .ProductGroup = ExtractItemFromDataReader(dr, "Productgroep", String.Empty)
- .Remark = ExtractItemFromDataReader(dr, "Opmerking", String.Empty)
- .EndTimeStamp = ExtractItemFromDataReader(dr, "EindTijdstip", DateTime.MinValue)
- .Activities = ExtractActivities(dr, activityAmount, workItem)
- End With
-
- 'Add to the result list.
- workItems.Add(workItem)
- End While
-
- 'Return the list.
- Return workItems
- Catch ex As Exception
- Throw New Exception($"An error occured while fetching the work items from Caché.{vbNewLine}{ex.Message}")
- Finally
- 'Close connection if datareader is not nothing.
- If Not IsNothing(dr) Then
- dr.Close()
- End If
- End Try
+ '''
+ '''
+ '''
+ Private Function ConvertEnumValueToActivityState(stateEnumValue As ActivityStateEnum, activity As IActivity, employees As List(Of IEmployee)) As ActivityState
+ 'Get employee if any.
+ Select Case stateEnumValue
+ Case ActivityStateEnum.Defaulted
+ Return New ActivityDefaultedState(activity)
+ Case ActivityStateEnum.Zero
+ Return New ActivityZeroState(activity)
+ End Select
End Function
+#End Region
+
End Module
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/ActiviteitenOpvolging.vbproj
===================================================================
diff -u -r1726 -r1731
--- ActiviteitenOpvolging/ActiviteitenOpvolging/ActiviteitenOpvolging.vbproj (.../ActiviteitenOpvolging.vbproj) (revision 1726)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/ActiviteitenOpvolging.vbproj (.../ActiviteitenOpvolging.vbproj) (revision 1731)
@@ -79,7 +79,14 @@
+
+
+
+
+
+
+
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/domain/managers/implementations/WorkItemManager.vb
===================================================================
diff -u -r1712 -r1731
--- ActiviteitenOpvolging/ActiviteitenOpvolging/domain/managers/implementations/WorkItemManager.vb (.../WorkItemManager.vb) (revision 1712)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/domain/managers/implementations/WorkItemManager.vb (.../WorkItemManager.vb) (revision 1731)
@@ -2,7 +2,7 @@
Implements IWorkItemManager
'''
- Public Function GiveWorkItems(workPostIndex As Integer) As ICollection(Of IWorkItem) Implements IWorkItemManager.GiveWorkItems
- Return CacheMapper.GetData(workPostIndex)
+ Public Function GiveWorkItems(workPostIndex As Integer, employees As List(Of IEmployee)) As ICollection(Of IWorkItem) Implements IWorkItemManager.GiveWorkItems
+ Return CacheMapper.GetData(workPostIndex, employees)
End Function
End Class
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/domain/controllers/DomainController.vb
===================================================================
diff -u -r1718 -r1731
--- ActiviteitenOpvolging/ActiviteitenOpvolging/domain/controllers/DomainController.vb (.../DomainController.vb) (revision 1718)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/domain/controllers/DomainController.vb (.../DomainController.vb) (revision 1731)
@@ -60,7 +60,7 @@
'''
Function GiveWorkItems(workPostIndex As Integer) As ICollection(Of IWorkItem) Implements IDomainController.GiveWorkItems
- Return _workItemManager.GiveWorkItems(workPostIndex)
+ Return _workItemManager.GiveWorkItems(workPostIndex, _employeeManager.Employees)
End Function
#End Region
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/domain/managers/IworkItemManager.vb
===================================================================
diff -u -r1712 -r1731
--- ActiviteitenOpvolging/ActiviteitenOpvolging/domain/managers/IworkItemManager.vb (.../IworkItemManager.vb) (revision 1712)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/domain/managers/IworkItemManager.vb (.../IworkItemManager.vb) (revision 1731)
@@ -4,5 +4,5 @@
'''
''' The index of the work post, 0 based
''' Collection of the work items
- Function GiveWorkItems(workPostIndex As Integer) As ICollection(Of IWorkItem)
+ Function GiveWorkItems(workPostIndex As Integer, employees As List(Of IEmployee)) As ICollection(Of IWorkItem)
End Interface