Monorepo/GUIs.ZooFlow/ClassHelpers.vb
2021-12-09 13:31:36 +01:00

116 lines
3.9 KiB
VB.net

Imports DigitalData.GUIs.ZooFlow.Base
Imports DigitalData.Modules.Logging
Public Class ClassHelpers
Inherits BaseClass
Public Sub New(pLogConfig As LogConfig)
MyBase.New(pLogConfig)
End Sub
Public Function GetValueFromDatatable(pDatatable As DataTable, pFilterString As String, pCheckColumn As String, pSortString As String) As Object
Try
If pDatatable Is Nothing OrElse pDatatable.Rows.Count = 0 Then
Return Nothing
End If
Dim oDataView As DataView = pDatatable.DefaultView
oDataView.RowFilter = pFilterString
If oDataView.Count > 1 Then
Logger.Warn("Multiple Results For Filter [{0}] and Column [{1}].", pFilterString, pCheckColumn)
Return Nothing
End If
If oDataView.Count = 0 Then
Logger.Warn("No Results For Filter [{0}] and Column [{1}].", pFilterString, pCheckColumn)
Return Nothing
End If
Dim oView As DataRowView = oDataView.Item(0)
Dim oRow As DataRow = oView.Row
Try
Return oRow.Item(pCheckColumn)
Catch ex As Exception
Logger.Warn("Datatable with Filter [{0}] does not contain Column [{1}]", pFilterString, pCheckColumn)
Logger.Error(ex)
Return Nothing
End Try
Catch ex As Exception
Logger.Error(ex)
Return Nothing
End Try
End Function
Public Function GetFilteredDatatable(pDatatable As DataTable, pFilterString As String, pSortString As String) As DataTable
Try
If pDatatable.Rows.Count = 0 Then
Return Nothing
End If
Dim oSelectedRows = pDatatable.Select(pFilterString, pSortString)
If oSelectedRows.Count = 0 Then
Return Nothing
End If
Dim oFilteredTable As DataTable = New DataTable()
oFilteredTable = oSelectedRows.CopyToDataTable()
Return oFilteredTable
Catch ex As Exception
Logger.Error(ex)
Return Nothing
End Try
End Function
Public Shared Function FileExistsinDropTable(Filename As String) As Date
Dim oSQL As String
Dim oHash As String
Dim oFilesystem As New DigitalData.Modules.Filesystem.File(My.LogConfig)
Try
If Filename.Contains("'") Then
Filename = Filename.Replace("'", "''")
End If
Try
oHash = oFilesystem.GetChecksum(Filename)
Catch ex As Exception
oHash = ""
End Try
oSQL = "SELECT * FROM TBGI_FILES_USER WHERE UPPER(FILE_HASH) = UPPER('" & oHash & "') AND WORKED = 0 ORDER BY ADDED_WHEN"
Dim oResult As DataTable = My.DatabaseECM.GetDatatable(oSQL)
If oResult Is Nothing Then
Return Nothing
End If
If oResult.Rows.Count = 0 Then
oSQL = "SELECT * FROM TBGI_HISTORY WHERE UPPER(FILE_HASH) = UPPER('" & oHash & "') ORDER BY ADDED_WHEN"
oResult = My.DatabaseECM.GetDatatable(oSQL)
If oResult Is Nothing Then
Return Nothing
End If
If oResult.Rows.Count = 0 Then
Return Nothing
Else
Dim oFirstRow As DataRow = oResult.Rows.Item(0)
Return oFirstRow.Item("ADDED_WHEN")
End If
Else
Dim oFirstRow As DataRow = oResult.Rows.Item(0)
Return oFirstRow.Item("ADDED_WHEN")
End If
Catch ex As Exception
MsgBox("Error in FileExistsinDropTable - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & oSQL, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
End Class