Index: ActiviteitenOpvolging/ActiviteitenOpvolging/domain/classes/IActivity.vb
===================================================================
diff -u -r1729 -r1733
--- ActiviteitenOpvolging/ActiviteitenOpvolging/domain/classes/IActivity.vb (.../IActivity.vb) (revision 1729)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/domain/classes/IActivity.vb (.../IActivity.vb) (revision 1733)
@@ -1,10 +1,10 @@
Public Interface IActivity
- inherits IActivityActions
+ Inherits IActivityActions
Property Id As String
Property QuantityToProduce As Integer
Property Label As String
- Property Status As ActivityStateEnum
+ ReadOnly Property Status As ActivityStateEnum
Property EmployeeInitials As String
Property IsReadOnly As Boolean
Property StartBeforeTimestamp As DateTime
@@ -15,4 +15,4 @@
Property State As ActivityState
ReadOnly Property CurrentEmployee As IEmployee
-End interface
+End Interface
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/mappers/CacheMapper.vb
===================================================================
diff -u -r1731 -r1733
--- ActiviteitenOpvolging/ActiviteitenOpvolging/mappers/CacheMapper.vb (.../CacheMapper.vb) (revision 1731)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/mappers/CacheMapper.vb (.../CacheMapper.vb) (revision 1733)
@@ -1,4 +1,5 @@
Imports System.Data.Odbc
+Imports System.Windows.Navigation
Imports ActiviteitenOpvolging.configs
Module CacheMapper
@@ -179,8 +180,11 @@
.StartAlmostTimeStamp = If(.StartTimeStamp = DateTime.MinValue, DateTime.MinValue, .StartTimeStamp.Subtract(ConfigsLoader.StartAlmostTimeThreshold))
'Set parent work item.
.WorkItem = workItem
+
+ 'Fetch the employee if defined.
+ Dim employee As IEmployee = employees.FirstOrDefault(Function(employeeToCheck) employeeToCheck.Initials.Equals(.EmployeeInitials))
'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)
+ .State = ConvertEnumValueToActivityState(If(.QuantityToProduce = 0, ActivityStateEnum.Zero, ActivityStateEnumMapper.GetActivityStateFromLetter(ExtractItemFromDataReader(Of Char)(dr, $"Status_{i}"))), activity, employee)
End With
'Add to collection of activities.
activities.Add(activity)
@@ -212,13 +216,21 @@
'''
'''
'''
- Private Function ConvertEnumValueToActivityState(stateEnumValue As ActivityStateEnum, activity As IActivity, employees As List(Of IEmployee)) As ActivityState
+ Private Function ConvertEnumValueToActivityState(stateEnumValue As ActivityStateEnum, activity As IActivity, employee As IEmployee) As ActivityState
'Get employee if any.
Select Case stateEnumValue
- Case ActivityStateEnum.Defaulted
- Return New ActivityDefaultedState(activity)
Case ActivityStateEnum.Zero
Return New ActivityZeroState(activity)
+ Case ActivityStateEnum.Defaulted
+ Return New ActivityDefaultedState(activity)
+ Case ActivityStateEnum.Stopped
+ Return New ActivityStoppedState(activity, employee)
+ Case ActivityStateEnum.Started
+ Return New ActivityStartedState(activity, employee)
+ Case ActivityStateEnum.Finished
+ Return New ActivityFinishedState(activity, employee)
+ Case Else
+ Throw New InternalException($"Activity state enum value '{stateEnumValue}' cannot be used to map to an activity state.")
End Select
End Function
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/domain/classes/implementations/Activity.vb
===================================================================
diff -u -r1731 -r1733
--- ActiviteitenOpvolging/ActiviteitenOpvolging/domain/classes/implementations/Activity.vb (.../Activity.vb) (revision 1731)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/domain/classes/implementations/Activity.vb (.../Activity.vb) (revision 1733)
@@ -4,8 +4,11 @@
Public Property Id As String Implements IActivity.Id
Public Property QuantityToProduce As Integer Implements IActivity.QuantityToProduce
Public Property Label As String Implements IActivity.Label
- Public Property Status As ActivityStateEnum Implements IActivity.Status
- 'todo get enum state from state
+ Public ReadOnly Property Status As ActivityStateEnum Implements IActivity.Status
+ Get
+ Return State.ActivityStateEnum()
+ End Get
+ End Property
Public Property IsReadOnly As Boolean Implements IActivity.IsReadOnly
Public Property StartBeforeTimestamp As DateTime Implements IActivity.StartBeforeTimestamp
Public Property StartAlmostTimeStamp As DateTime Implements IActivity.StartAlmostTimeStamp
Index: ActiviteitenOpvolging/ActiviteitenOpvolging/domain/controllers/DomainController.vb
===================================================================
diff -u -r1731 -r1733
--- ActiviteitenOpvolging/ActiviteitenOpvolging/domain/controllers/DomainController.vb (.../DomainController.vb) (revision 1731)
+++ ActiviteitenOpvolging/ActiviteitenOpvolging/domain/controllers/DomainController.vb (.../DomainController.vb) (revision 1733)
@@ -60,7 +60,7 @@
'''
Function GiveWorkItems(workPostIndex As Integer) As ICollection(Of IWorkItem) Implements IDomainController.GiveWorkItems
- Return _workItemManager.GiveWorkItems(workPostIndex, _employeeManager.Employees)
+ Return _workItemManager.GiveWorkItems(workPostIndex, _employeeManager.Employees.ToList())
End Function
#End Region