Compare commits
3 Commits
64b96e0b17
...
2b6e06c3fa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2b6e06c3fa | ||
|
|
93c07afde5 | ||
|
|
f5c0a18a59 |
115
GUIs.ZooFlow/ClassHelpers.vb
Normal file
115
GUIs.ZooFlow/ClassHelpers.vb
Normal file
@@ -0,0 +1,115 @@
|
||||
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.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
|
||||
@@ -40,6 +40,7 @@ Public Class ClassInit
|
||||
_Loader = New ClassInitLoader()
|
||||
|
||||
' === Init Schritte definieren
|
||||
_Loader.AddStep("Initializing Base", AddressOf InitializeBase, True)
|
||||
_Loader.AddStep("Initializing Database (1/2)", AddressOf InitializeDatabase, True)
|
||||
_Loader.AddStep("Initializing EDMI Service", AddressOf InitializeService, True)
|
||||
_Loader.AddStep("Initializing Database (2/2)", AddressOf InitializeDatabaseWithFallback, True)
|
||||
@@ -58,6 +59,10 @@ Public Class ClassInit
|
||||
|
||||
|
||||
#Region "=== Init Steps ==="
|
||||
Private Sub InitializeBase(MyApplication As My.MyApplication)
|
||||
My.Helpers = New ClassHelpers(My.LogConfig)
|
||||
End Sub
|
||||
|
||||
Private Sub InitializeDatabase(MyApplication As My.MyApplication)
|
||||
Dim oConnectionString = MSSQLServer.DecryptConnectionString(My.SystemConfig.ConnectionString)
|
||||
My.DatabaseECM = New MSSQLServer(My.LogConfig, oConnectionString)
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
Public Class ClassHelpers
|
||||
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
|
||||
@@ -950,7 +950,7 @@ Public Class frmGlobix_Index
|
||||
' Regulären Ausdruck zum Auslesen der Indexe definieren
|
||||
Dim preg As String = "\[%{1}[a-zA-Z0-9ß\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
|
||||
'schonmal den gesamten Pfad laden
|
||||
Dim oNamenkonvention As String = FilterDatatable(My.Application.Globix.CURR_DT_DOCTYPE, $"", "NAMENKONVENTION", "", False).ToString & My.Application.Globix.CURRENT_WORKFILE_EXTENSION
|
||||
Dim oNamenkonvention As String = My.Helpers.GetValueFromDatatable(My.Application.Globix.CURR_DT_DOCTYPE, $"", "NAMENKONVENTION", "").ToString & My.Application.Globix.CURRENT_WORKFILE_EXTENSION
|
||||
NewFileString = oNamenkonvention
|
||||
' einen Regulären Ausdruck laden
|
||||
Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg)
|
||||
@@ -968,7 +968,7 @@ Public Class frmGlobix_Index
|
||||
_Logger.Debug("NameGenerieren: Manueller Index wird geprüft...")
|
||||
Dim Indexname = oElement.Value.Substring(3, oElement.Value.Length - 4)
|
||||
|
||||
Dim optional_index As Boolean = FilterDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = {My.Application.Globix.CURRENT_DOCTYPE_ID} AND INDEXNAME = '{Indexname}'", "OPTIONAL", "", False)
|
||||
Dim optional_index As Boolean = My.Helpers.GetValueFromDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = {My.Application.Globix.CURRENT_DOCTYPE_ID} AND INDEXNAME = '{Indexname}'", "OPTIONAL", "")
|
||||
|
||||
Dim oManValue As String = GetManIndex_Value(Indexname, "FILE", optional_index)
|
||||
If oManValue <> String.Empty Then
|
||||
@@ -1123,7 +1123,7 @@ Public Class frmGlobix_Index
|
||||
Private Function Move_File2_Target()
|
||||
Dim oError As Boolean
|
||||
Try
|
||||
Dim oFolderForIndex = FilterDatatable(My.Application.Globix.CURR_DT_DOCTYPE, $"", "FOLDER_FOR_INDEX", "", False)
|
||||
Dim oFolderForIndex = My.Helpers.GetValueFromDatatable(My.Application.Globix.CURR_DT_DOCTYPE, $"", "FOLDER_FOR_INDEX", "")
|
||||
|
||||
If Not IsDBNull(oFolderForIndex) Then
|
||||
CreateFolderForIndex(oFolderForIndex)
|
||||
@@ -1413,7 +1413,7 @@ Public Class frmGlobix_Index
|
||||
'Manueller Indexwert
|
||||
Case "M"
|
||||
Dim oManIndexName = oMatch.Value.Substring(3, oMatch.Value.Length - 4)
|
||||
Dim oIsOptional As Boolean = FilterDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = {My.Application.Globix.CURRENT_DOCTYPE_ID} AND INDEXNAME = '{oManIndexName}'", "OPTIONAL", "", False)
|
||||
Dim oIsOptional As Boolean = My.Helpers.GetValueFromDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = {My.Application.Globix.CURRENT_DOCTYPE_ID} AND INDEXNAME = '{oManIndexName}'", "OPTIONAL", "")
|
||||
|
||||
_Logger.Info("Versuch den Indexwert aus '" & oManIndexName & "' auszulesen.")
|
||||
Dim oManIndexValue As String = GetManIndex_Value(oManIndexName, "FILE", oIsOptional)
|
||||
@@ -1643,7 +1643,7 @@ Public Class frmGlobix_Index
|
||||
Dim box As DevExpress.XtraEditors.TextEdit = oControl
|
||||
If box.Text = "" Then
|
||||
Dim oIndexName = Replace(box.Name, "txt", "")
|
||||
Dim optional_index As Boolean = FilterDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = {dokartid} AND INDEXNAME = '{oIndexName}'", "OPTIONAL", "", False)
|
||||
Dim optional_index As Boolean = My.Helpers.GetValueFromDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = {dokartid} AND INDEXNAME = '{oIndexName}'", "OPTIONAL", "")
|
||||
|
||||
If optional_index = False Then
|
||||
MsgBox(TEXT_MISSING_INPUT, MsgBoxStyle.Exclamation, "Fehlende Eingabe:")
|
||||
@@ -1672,7 +1672,7 @@ Public Class frmGlobix_Index
|
||||
|
||||
If values.Count = 0 Then
|
||||
Dim oIndexName = Replace(oLookup.Name, "cmbMulti", "")
|
||||
Dim optional_index As Boolean = FilterDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = {dokartid} AND INDEXNAME = '{oIndexName}'", "OPTIONAL", "", False)
|
||||
Dim optional_index As Boolean = My.Helpers.GetValueFromDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = {dokartid} AND INDEXNAME = '{oIndexName}'", "OPTIONAL", "")
|
||||
|
||||
|
||||
If optional_index = False Then
|
||||
@@ -1693,7 +1693,7 @@ Public Class frmGlobix_Index
|
||||
|
||||
If cmbSingle.Text = "" Then
|
||||
Dim oIndexName = Replace(cmbSingle.Name, "cmbSingle", "")
|
||||
Dim optional_index As Boolean = FilterDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = dokartid AND INDEXNAME = '{oIndexName}'", "OPTIONAL", "", False)
|
||||
Dim optional_index As Boolean = My.Helpers.GetValueFromDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = dokartid AND INDEXNAME = '{oIndexName}'", "OPTIONAL", "")
|
||||
|
||||
|
||||
If optional_index = False Then
|
||||
@@ -1712,7 +1712,7 @@ Public Class frmGlobix_Index
|
||||
Dim cmb As ComboBox = oControl
|
||||
If cmb.Text = "" Then
|
||||
Dim oIndexName = Replace(cmb.Name, "cmb", "")
|
||||
Dim optional_index As Boolean = FilterDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = dokartid AND INDEXNAME = '{oIndexName}'", "OPTIONAL", "", False)
|
||||
Dim optional_index As Boolean = My.Helpers.GetValueFromDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = dokartid AND INDEXNAME = '{oIndexName}'", "OPTIONAL", "")
|
||||
|
||||
If optional_index = False Then
|
||||
MsgBox(TEXT_MISSING_INPUT, MsgBoxStyle.Exclamation, Text)
|
||||
@@ -1732,7 +1732,7 @@ Public Class frmGlobix_Index
|
||||
Dim oIndexName As String = Replace(dtp.Name, "dtp", "")
|
||||
|
||||
If dtp.Text = String.Empty Then
|
||||
Dim optional_index As Boolean = FilterDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = dokartid AND INDEXNAME = '{oIndexName}'", "OPTIONAL", "", False)
|
||||
Dim optional_index As Boolean = My.Helpers.GetValueFromDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = dokartid AND INDEXNAME = '{oIndexName}'", "OPTIONAL", "")
|
||||
|
||||
|
||||
If optional_index = False Then
|
||||
@@ -1927,7 +1927,7 @@ Public Class frmGlobix_Index
|
||||
oSqlResult = oSqlResult.Replace(oMatch.Value, oPlaceholderResult)
|
||||
End If
|
||||
|
||||
oOptionalIndex = FilterDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = {My.Application.Globix.CURRENT_DOCTYPE_ID} AND INDEXNAME = '{oIndexValue}'", "OPTIONAL", "", False)
|
||||
oOptionalIndex = My.Helpers.GetValueFromDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = {My.Application.Globix.CURRENT_DOCTYPE_ID} AND INDEXNAME = '{oIndexValue}'", "OPTIONAL", "")
|
||||
|
||||
|
||||
oManualIndexResult = GetManIndex_Value(oIndexValue, "IDX_AUTO", oOptionalIndex)
|
||||
@@ -1964,7 +1964,7 @@ Public Class frmGlobix_Index
|
||||
Dim oOptionalIndex = False
|
||||
Dim oManualIndexResult As String = Nothing
|
||||
|
||||
oOptionalIndex = FilterDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = {My.Application.Globix.CURRENT_DOCTYPE_ID} AND INDEXNAME = '{oIndexValue}'", "OPTIONAL", "", False)
|
||||
oOptionalIndex = My.Helpers.GetValueFromDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = {My.Application.Globix.CURRENT_DOCTYPE_ID} AND INDEXNAME = '{oIndexValue}'", "OPTIONAL", "")
|
||||
|
||||
oManualIndexResult = GetManIndex_Value(oIndexValue, "IDX_AUTO", oOptionalIndex)
|
||||
|
||||
@@ -2047,7 +2047,7 @@ Public Class frmGlobix_Index
|
||||
'Die Nachbearbeitungsschritte laden
|
||||
'FILE AND INDEX
|
||||
'Zuerst nur die Fälle für die Variante ONLY FILE/FOLDER
|
||||
Dim DTNB As DataTable = FilterDatatable(My.Application.Globix.CURR_INDEX_MAN_POSTPROCESSING, "IDXMAN_ID = " & idxid & " AND VARIANT = 'ONLY FILE/FOLDER'", "", "SEQUENCE", True)
|
||||
Dim DTNB As DataTable = My.Helpers.GetFilteredDatatable(My.Application.Globix.CURR_INDEX_MAN_POSTPROCESSING, $"IDXMAN_ID = {idxid} AND VARIANT = 'ONLY FILE/FOLDER'", "SEQUENCE")
|
||||
|
||||
If DTNB Is Nothing = False Then
|
||||
If DTNB.Rows.Count > 0 Then
|
||||
@@ -2059,7 +2059,7 @@ Public Class frmGlobix_Index
|
||||
'Jetzt die Fälle für die Variante FILE AND INDEX
|
||||
DTNB = Nothing
|
||||
|
||||
DTNB = FilterDatatable(My.Application.Globix.CURR_INDEX_MAN_POSTPROCESSING, "IDXMAN_ID = " & idxid & " AND VARIANT = 'FILE AND INDEX'", "", "SEQUENCE", True)
|
||||
DTNB = My.Helpers.GetFilteredDatatable(My.Application.Globix.CURR_INDEX_MAN_POSTPROCESSING, "IDXMAN_ID = " & idxid & " AND VARIANT = 'FILE AND INDEX'", "SEQUENCE")
|
||||
|
||||
If DTNB Is Nothing = False Then
|
||||
If DTNB.Rows.Count > 0 Then
|
||||
|
||||
@@ -85,27 +85,4 @@ Module ModuleHelpers
|
||||
End Try
|
||||
Return connectionString
|
||||
End Function
|
||||
|
||||
Public Function FilterDatatable(pDatatable As DataTable, pFilterString As String, pCheckColumn As String, pSortString As String, pReturnDataTable As Boolean) As Object
|
||||
Try
|
||||
If pDatatable.Rows.Count = 0 Then
|
||||
Return Nothing
|
||||
End If
|
||||
Dim oDataView As DataView = pDatatable.DefaultView
|
||||
oDataView.RowFilter = pFilterString
|
||||
If oDataView.Count = 1 And pReturnDataTable = False Then
|
||||
Dim oView As DataRowView = oDataView.Item(0)
|
||||
Dim oRow As DataRow = oView.Row
|
||||
Return oRow.Item(pCheckColumn)
|
||||
Else
|
||||
Dim oDataTableCopy As DataTable = New DataTable()
|
||||
oDataTableCopy = pDatatable.Select(pFilterString, pSortString).CopyToDataTable()
|
||||
|
||||
Return oDataTableCopy
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in FilterDatatable: " + ex.Message, MsgBoxStyle.Critical)
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
End Module
|
||||
|
||||
@@ -36,6 +36,7 @@ Namespace My
|
||||
|
||||
Property Tables As New ClassTables
|
||||
Property Queries As New ClassQueries
|
||||
Property Helpers As ClassHelpers
|
||||
#End Region
|
||||
|
||||
Property Filestore_Work As String
|
||||
|
||||
@@ -87,6 +87,9 @@
|
||||
<Reference Include="DevExpress.XtraRichEdit.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraSpreadsheet.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraTreeList.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DigitalData.Controls.SnapPanel">
|
||||
<HintPath>..\Controls.SnapPanel\obj\Debug\DigitalData.Controls.SnapPanel.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Independentsoft.Msg">
|
||||
<HintPath>P:\Visual Studio Projekte\Bibliotheken\MSG .NET\Bin\22_11_19\Independentsoft.Msg.dll</HintPath>
|
||||
</Reference>
|
||||
@@ -202,7 +205,7 @@
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Globix\ClassExclusions.vb" />
|
||||
<Compile Include="Globix\ClassHelpers.vb" />
|
||||
<Compile Include="ClassHelpers.vb" />
|
||||
<Compile Include="modCurrent.vb" />
|
||||
<Compile Include="MyDataset.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
|
||||
Reference in New Issue
Block a user