Merge committe

This commit is contained in:
Digital Data - Marlon Schreiber 2019-04-16 12:22:11 +02:00
commit 1496d02e59
2 changed files with 89 additions and 149 deletions

View File

@ -15,8 +15,7 @@ Public Class clsDateiverarbeitung
Dim _database As clsDatabase
Public Shared pr_DTPROFIL_REGELN As DataTable
Public Shared aktfile_Exportresult
Public Shared aktfile_Exportresult As String
Public Shared CriticalError As Boolean = False
@ -134,6 +133,82 @@ Public Class clsDateiverarbeitung
Return String.Empty
End Try
End Function
' Neu geschriebene version 25.03.19
Public Function Export_WMFile2HDD(WMObject As WMObject, ExportPath As String) As Boolean
Try
Dim oWMObject As IWMObject6 = DirectCast(WMObject, IWMObject6)
Dim oFilenameFull As String = oWMObject.aName
Dim oFilenameExport As String
Dim oSplitIndex = oFilenameFull.LastIndexOf(".")
Dim oVersion = 1
Dim oFilename = oFilenameFull.Substring(0, oSplitIndex)
Dim oExtension = oFilenameFull.Substring(oSplitIndex)
Logger.Debug("Preparing export of file {0}..", oFilenameFull)
Logger.Debug("Filename: {0}", oFilename)
Logger.Debug("Extension: {0}", oExtension)
' build the file path in case the exported file doesn't already exist
oFilenameExport = BuildExportPath(ExportPath, oFilename, oExtension)
' Add version until we find the version that does NOT exist
Do While File.Exists(oFilenameExport)
oVersion += 1
oFilenameExport = BuildExportPath(ExportPath, oFilename, oExtension, oVersion)
Loop
Logger.Debug("File will be exported to {0}", oFilenameExport)
Logger.Debug("Opening file stream..")
Dim oStream As WMStream = oWMObject.OpenStream("BinaryObject", WMObjectStreamOpenMode.WMObjectStreamOpenModeRead)
Dim oWMFileIO As New WMOTOOLLib.WMFileIO() With {
.aWMStream = oStream,
.bstrOriginalFileName = oFilenameExport
}
Logger.Debug("Exporting file..")
oWMFileIO.ExportOriginal(True)
Logger.Debug("Cleaning up..")
oStream.Close()
Logger.Debug("File exported!")
If File.Exists(oFilenameExport) Then
Logger.Info($"File Export to HDD [{oFilenameExport}]was successfull (File.Exists = True)!")
aktfile_Exportresult = oFilenameExport
clsCURRENT.EXPORTED_FILENAME = oFilenameExport
clsCURRENT.TEMP_FILES.Add(oFilenameExport)
Logger.Debug("FileInfo Added to variables...")
Return True
Else
Logger.Warn($"Export not successfull or File.Exists = false Export: [{oFilenameExport}]")
Return False
End If
Return True
Catch ex As Exception
Logger.Error(ex)
Return False
End Try
End Function
Private Function BuildExportPath(BasePath As String, FilenameWithoutExtension As String, Extension As String, Optional Version As Integer = 1)
Dim oFilename
If Version = 1 Then
oFilename = FilenameWithoutExtension & Extension
Else
oFilename = FilenameWithoutExtension & "_" & Version & Extension
End If
Return Path.Combine(BasePath, oFilename)
End Function
' Alte Funktion 25.03.19
'Public Function Export_WMFile2HDD(oWMFile As WMObject, MyExportpath As String)
' Try
' If Not MyExportpath.EndsWith("\") Then
@ -150,17 +225,7 @@ Public Class clsDateiverarbeitung
' Dim ExportFileIO = New WMOTOOLLib.WMFileIO ' CreateObject("WMOTOOLLib.WMFileIO") ' New WMOTOOLLib.WMFileIO
' Logger.Debug("ExportFileIO created...")
' oWMFile.LockFor(WMObjectEditModeFileSystem)
' Try
' If Not oWMFile.aLocked Then
' oWMFile.lock()
' End If
' Catch ex As Exception
' Logger.Error(ex) 'clsLogger.AddError("Unvorhergesehener Fehler beim Lock-Vorgang: " & ex.Message, "clsDV.Export_File")
' Return False
' End Try
' Dim oWMStream = oWMFile.OpenStream("BinaryObject", 2)
' Dim oWMStream = oWMFile.OpenStream("BinaryObject", 1)
' '### VERSIONIERUNG ###
' Dim version As Integer = 2
' 'Dim Stammname As String = System.IO.Path.GetFileNameWithoutExtension(Quelle)
@ -174,16 +239,13 @@ Public Class clsDateiverarbeitung
' Loop
' Logger.Debug("Exportfilename is: " & oTempFilename)
' ' den Dateiinhalt der neuen Datei zuweisen
' ExportFileIO.aWMStream = oWMStream
' ExportFileIO.bstrOriginalFileName = oTempFilename
' ExportFileIO.aWMStream = oWMStream
' 'Das eigentliche kopieren
' ExportFileIO.ExportOriginal(True)
' ' close the windream file stream
' oWMStream.Close()
' oWMFile.Save()
' oWMFile.unlock()
' If File.Exists(oTempFilename) Then
' clsCURRENT.EXPORTED_FILENAME = oTempFilename
' Logger.Info($"File Export to HDD [{clsCURRENT.EXPORTED_FILENAME}]was successfull (File.Exists = True)!")
@ -203,128 +265,6 @@ Public Class clsDateiverarbeitung
' End Try
'End Function
'Kopiert die übergebene Datei In den Zielpfad
Public Function Export_WMFile2HDD(oWMFile As WMObject, oZielpfad As String)
Try
If Not oZielpfad.EndsWith("\") Then
oZielpfad = oZielpfad & "\"
End If
Dim oNewFilename As String
Logger.Info("Verarbeitung von Datei: " & oWMFile.aName)
oNewFilename = CleanInput(oWMFile.aName)
'Die Quelle zusammensetzen
Logger.Debug("PFAD: " & clsCURRENT.WDLAUFWERK & ":" & oWMFile.aPath & "\" & oWMFile.aName)
'Dim Quelle As String = IO.Path.GetDirectoryName(WDLaufwerk & ":" & WDDatei.aPath & "\" & WDDatei.aName)
Dim ExportFileIO = New WMOTOOLLib.WMFileIO ' CreateObject("WMOTOOLLib.WMFileIO") ' New WMOTOOLLib.WMFileIO
Logger.Debug("ExportFileIO erzeugt.....")
' Stream Interface bereitstellen
oWMFile.LockFor(WMObjectEditModeFileSystem)
Try
If Not oWMFile.aLocked Then
oWMFile.lock()
End If
Catch ex As Exception
Logger.Error(ex) 'clsLogger.AddError("Unvorhergesehener Fehler beim Lock-Vorgang: " & ex.Message, "clsDV.Export_File")
Return False
End Try
Dim oWMStream = oWMFile.OpenStream("BinaryObject", WMObjectStreamOpenModeReadWrite)
'### VERSIONIERUNG ###
Dim version As Integer = 2
'Dim Stammname As String = System.IO.Path.GetFileNameWithoutExtension(Quelle)
Dim oFilename = oWMFile.aName.Substring(0, oWMFile.aName.LastIndexOf("."))
Dim oExtension = oWMFile.aName.Substring(oWMFile.aName.LastIndexOf("."))
Dim oTempFilename As String = oZielpfad & oFilename & oExtension
'Überprüfen ob File existiert
Do While IO.File.Exists(oTempFilename) = True
oTempFilename = oZielpfad & oFilename & "_" & version & oExtension
version = version + 1
Loop
Logger.Debug("Zieldateiname: " & oTempFilename)
' den Dateiinhalt der neuen Datei zuweisen
ExportFileIO.aWMStream = oWMStream
ExportFileIO.bstrOriginalFileName = oTempFilename
'Das eigentliche kopieren
ExportFileIO.ExportOriginal(True)
' close the windream file stream
oWMStream.Close()
oWMFile.Save()
oWMFile.unlock()
clsCURRENT.EXPORTED_FILENAME = oTempFilename
Logger.Info("Datei erfolgreich nach '" & oTempFilename & "' kopiert.")
aktfile_Exportresult = oTempFilename
clsCURRENT.TEMP_FILES.Add(oTempFilename)
Return True
Catch ex As Exception
'bei einem Fehler einen Eintrag in der Logdatei machen
Logger.Warn($"Unexpected in Export-File: [{oWMFile.aName}]...")
Logger.Error(ex)
Return False
End Try
End Function
'Kopiert die übergebene Datei in den Zielpfad
'Public Function Export_File(oWMFile As WMObject, oZielpfad As String)
' Try
' If Not oZielpfad.EndsWith("\") Then
' oZielpfad = oZielpfad & "\"
' End If
' Dim oNewFilename As String
' Logger.Info("Verarbeitung von Datei: " & oWMFile.aName)
' oNewFilename = CleanInput(oWMFile.aName)
' 'Die Quelle zusammensetzen
' Logger.Debug("PFAD: " & clsCURRENT.WDLAUFWERK & ":" & oWMFile.aPath & "\" & oWMFile.aName)
' 'Dim Quelle As String = IO.Path.GetDirectoryName(WDLaufwerk & ":" & WDDatei.aPath & "\" & WDDatei.aName)
' Dim ExportFileIO = New WMOTOOLLib.WMFileIO ' CreateObject("WMOTOOLLib.WMFileIO") ' New WMOTOOLLib.WMFileIO
' Logger.Debug("ExportFileIO erzeugt.....")
' ' Stream Interface bereitstellen
' oWMFile.LockFor(WMObjectEditModeFileSystem)
' Try
' If Not oWMFile.aLocked Then
' oWMFile.lock()
' End If
' Catch ex As Exception
' Logger.Error(ex) 'clsLogger.AddError("Unvorhergesehener Fehler beim Lock-Vorgang: " & ex.Message, "clsDV.Export_File")
' Return False
' End Try
' Dim oWMStream = oWMFile.OpenStream("BinaryObject", WMObjectStreamOpenModeReadWrite)
' '### VERSIONIERUNG ###
' Dim version As Integer = 2
' 'Dim Stammname As String = System.IO.Path.GetFileNameWithoutExtension(Quelle)
' Dim oFilename = oWMFile.aName.Substring(0, oWMFile.aName.LastIndexOf("."))
' Dim oExtension = oWMFile.aName.Substring(oWMFile.aName.LastIndexOf("."))
' Dim oTempFilename As String = oZielpfad & oFilename & oExtension
' 'Überprüfen ob File existiert
' Do While IO.File.Exists(oTempFilename) = True
' oTempFilename = oZielpfad & oFilename & "_" & version & oExtension
' version = version + 1
' Loop
' Logger.Debug("Zieldateiname: " & oTempFilename)
' ' den Dateiinhalt der neuen Datei zuweisen
' ExportFileIO.aWMStream = oWMStream
' ExportFileIO.bstrOriginalFileName = oTempFilename
' 'Das eigentliche kopieren
' ExportFileIO.ExportOriginal(True)
' ' close the windream file stream
' oWMStream.Close()
' oWMFile.Save()
' oWMFile.unlock()
' clsCURRENT.EXPORTED_FILENAME = oTempFilename
' Logger.Info("Datei erfolgreich nach '" & oTempFilename & "' kopiert.")
' aktfile_Exportresult = oTempFilename
' clsCURRENT.TEMP_FILES.Add(oTempFilename)
' Return True
' Catch ex As Exception
' 'bei einem Fehler einen Eintrag in der Logdatei machen
' Logger.Warn($"Unexpected in Export-File: [{oWMFile.aName}]...")
' Logger.Error(ex)
' Return False
' End Try
'End Function
Public Function Rename_File(WMFile As WMObject, konvention As String)
Try
Logger.Debug("Konvention: '" & konvention & "'")

View File

@ -188,16 +188,16 @@ Public Class DDWDResultHandler
Logger.Info("Keine aktiven Profile WMResulthandler vorhanden")
notcompleted = True
End If
Try
For Each _file In clsCURRENT.TEMP_FILES
'Dim oFile As New FileInfo(_file)
'If (DateTime.UtcNow - oFile.CreationTimeUtc > TimeSpan.FromDays(1)) Then
System.IO.File.Delete(_file)
'End If
Next
Catch ex As Exception
'Try
' For Each _file In clsCURRENT.TEMP_FILES
' 'Dim oFile As New FileInfo(_file)
' 'If (DateTime.UtcNow - oFile.CreationTimeUtc > TimeSpan.FromDays(1)) Then
' System.IO.File.Delete(_file)
' 'End If
' Next
'Catch ex As Exception
End Try
'End Try
_database.Execute_non_Query("UPDATE TBWMRH_KONFIGURATION SET LAST_TICK = GETDATE() WHERE GUID = 1")
If oFirstRun = True Then