Index: ActiviteitenOpvolging/ActiviteitenOpvolging/mappers/CacheMapper.vb =================================================================== diff -u -r1679 -r1680 --- ActiviteitenOpvolging/ActiviteitenOpvolging/mappers/CacheMapper.vb (.../CacheMapper.vb) (revision 1679) +++ ActiviteitenOpvolging/ActiviteitenOpvolging/mappers/CacheMapper.vb (.../CacheMapper.vb) (revision 1680) @@ -71,7 +71,7 @@ ''' ''' ''' - Public Function HasColumn(ByRef dr As OdbcDataReader, columnName As String) As Boolean + Private Function HasColumn(ByRef dr As OdbcDataReader, columnName As String) As Boolean 'Loop through each row. For Each row As DataRow In dr.GetSchemaTable().Rows 'Check if column name matches defined one. @@ -84,57 +84,6 @@ #End Region ''' - ''' 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) 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) - Try - 'Execute query and store datareader. - Dim 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) - .StartBeforeTimestamp = ExtractItemFromDataReader(dr, "StartVoorafTijdstip", DateTime.MinValue) - .StartAlmostTimeStamp = ExtractItemFromDataReader(dr, "StartBijnaTijdstip", DateTime.MinValue) - .StartTimeStamp = ExtractItemFromDataReader(dr, "StartTijdstip", DateTime.MinValue) - .EndTimeStamp = ExtractItemFromDataReader(dr, "EindTijdstip", DateTime.MinValue) - .Activities = ExtractActivities(dr, activityAmount) - End With - - 'Add to the result list. - workItems.Add(workItem) - End While - - 'Close connection. - dr.Close() - - '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}") - End Try - End Function - - ''' ''' Get the correct query. ''' ''' @@ -162,12 +111,13 @@ 'Loop for every activity. For i As Integer = 1 To numberOfActivities + 'Initialise activity and fill with values. Dim activity As New Activity With activity .Id = ExtractItemFromDataReader(dr, $"ActiviteitID_{i}", String.Empty) .QuantityToProduce = ExtractItemFromDataReader(dr, $"Aantal_{i}", 0) .Label = ExtractItemFromDataReader(dr, $"Label_{i}", String.Empty) - .Status = ActivityStateEnumMapper.GetActivityStateFromLetter(ExtractItemFromDataReader(of Char)(dr, $"Status_{i}")) + .Status = ActivityStateEnumMapper.GetActivityStateFromLetter(ExtractItemFromDataReader(Of Char)(dr, $"Status_{i}")) .User = ExtractItemFromDataReader(dr, $"Gebruiker_{i}", String.Empty) .IsReadOnly = ExtractItemFromDataReader(dr, $"ReadOnly_{i}", False) End With @@ -197,5 +147,55 @@ #End Region + ''' + ''' 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) 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) + Try + 'Execute query and store datareader. + Dim 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) + .StartBeforeTimestamp = ExtractItemFromDataReader(dr, "StartVoorafTijdstip", DateTime.MinValue) + .StartAlmostTimeStamp = ExtractItemFromDataReader(dr, "StartBijnaTijdstip", DateTime.MinValue) + .StartTimeStamp = ExtractItemFromDataReader(dr, "StartTijdstip", DateTime.MinValue) + .EndTimeStamp = ExtractItemFromDataReader(dr, "EindTijdstip", DateTime.MinValue) + .Activities = ExtractActivities(dr, activityAmount) + End With + + 'Add to the result list. + workItems.Add(workItem) + End While + + 'Close connection. + dr.Close() + + '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}") + End Try + End Function + End Module