MS Klassen überarbeitet NLOG integriert

This commit is contained in:
Digital Data - Marlon Schreiber
2018-08-16 10:58:57 +02:00
parent be9fca94b3
commit 844a423f7d
76 changed files with 365601 additions and 1752 deletions

View File

@@ -5,7 +5,7 @@ Imports Newtonsoft.Json
Imports System.Text
Public Class clsDateiverarbeitung
Private Shared Logger As NLog.Logger = NLog.LogManager.GetCurrentClassLogger
#Region "***** Variablen und Konstanten*****"
Public Shared _windream As New clsWindream_allgemein
@@ -30,10 +30,11 @@ Public Class clsDateiverarbeitung
Try
pr_DTPROFIL_REGELN = Nothing
' Profildaten der Klasse mitteilen
clsLogger.AddDetailLog("InitProfilData Profildaten zugewiesen....")
Logger.Info("InitProfilData Profildaten zugewiesen....")
Return True
Catch ex As Exception
clsLogger.AddError(ex.Message, "cls_DV.InitProfilData")
Logger.Error(ex)
'clsLogger.AddError(ex.Message, "cls_DV.InitProfilData")
Return False
End Try
End Function
@@ -43,14 +44,14 @@ Public Class clsDateiverarbeitung
If Not Zielpfad.EndsWith("\") Then
Zielpfad = Zielpfad & "\"
End If
clsLogger.Add("", False)
clsLogger.Add(">> Verarbeitung von Datei: " & WDDatei.aName, False)
Logger.Info("Verarbeitung von Datei: " & WDDatei.aName)
'Die Quelle zusammensetzen
clsLogger.AddDetailLog("PFAD: " & clsCURRENT.WDLAUFWERK & ":" & WDDatei.aPath & "\" & WDDatei.aName)
Logger.Info("PFAD: " & clsCURRENT.WDLAUFWERK & ":" & WDDatei.aPath & "\" & WDDatei.aName)
'Dim Quelle As String = IO.Path.GetDirectoryName(WDLaufwerk & ":" & WDDatei.aPath & "\" & WDDatei.aName)
Dim ExportFileIO = New WMOTOOLLib.WMFileIO ' CreateObject("WMOTOOLLib.WMFileIO") ' New WMOTOOLLib.WMFileIO
clsLogger.AddDetailLog("ExportFileIO erzeugt.....")
Logger.Info("ExportFileIO erzeugt.....")
' Stream Interface bereitstellen
WDDatei.LockFor(WMObjectEditModeFileSystem)
Try
@@ -58,7 +59,7 @@ Public Class clsDateiverarbeitung
WDDatei.lock()
End If
Catch ex As Exception
clsLogger.AddError("Unvorhergesehener Fehler beim Lock-Vorgang: " & ex.Message, "clsDV.Export_File")
Logger.Error(ex) 'clsLogger.AddError("Unvorhergesehener Fehler beim Lock-Vorgang: " & ex.Message, "clsDV.Export_File")
Return False
End Try
@@ -74,7 +75,7 @@ Public Class clsDateiverarbeitung
tempFilename = Zielpfad & Filename & "_" & version & Extension
version = version + 1
Loop
clsLogger.AddDetailLog("Zieldateiname: " & tempFilename)
Logger.Info("Zieldateiname: " & tempFilename)
' den Dateiinhalt der neuen Datei zuweisen
ExportFileIO.aWMStream = oWMStream
ExportFileIO.bstrOriginalFileName = tempFilename
@@ -85,18 +86,19 @@ Public Class clsDateiverarbeitung
WDDatei.Save()
WDDatei.unlock()
clsCURRENT.EXPORTED_FILENAME = tempFilename
clsLogger.Add(">> Datei erfolgreich nach '" & tempFilename & "' verschoben.", False, "clsDV Export_File")
Logger.Info("Datei erfolgreich nach '" & tempFilename & "' verschoben.")
aktfile_Exportresult = tempFilename
Return True
Catch ex As Exception
'bei einem Fehler einen Eintrag in der Logdatei machen
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsDV.Export_File")
Logger.Error(ex)
Return False
End Try
End Function
Public Shared Function Rename_File(WMFile As WMObject, konvention As String)
Try
clsLogger.AddDetailLog("Konvention: '" & konvention & "'")
Logger.Info("Konvention: '" & konvention & "'")
'Regulären Ausdruck zum Auslesen der windream-Indexe definieren
Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
@@ -110,42 +112,43 @@ Public Class clsDateiverarbeitung
'die Zeichen [% und ] entfernen (liefert den wirklichen windream-Index)
Dim reg_element_Ohne_SZ As String = reg_element.Value.Replace("[%", "")
reg_element_Ohne_SZ = reg_element_Ohne_SZ.Replace("]", "")
clsLogger.AddDetailLog("Indexwert aus Index '" & reg_element_Ohne_SZ & "' auslesen....")
Logger.Info("Indexwert aus Index '" & reg_element_Ohne_SZ & "' auslesen....")
Dim wdIndexwert
'den Wert des Indexes für das aktuelle Dokument auslesen
wdIndexwert = WMFile.GetVariableValue(reg_element_Ohne_SZ)
If wdIndexwert Is Nothing = False Then
If Not wdIndexwert.GetType.ToString.Contains("System.Object") Then
clsLogger.AddDetailLog("Namenkonvention (" & i & ") " & konvention)
Logger.Info("Namenkonvention (" & i & ") " & konvention)
wdIndexwert = wdIndexwert.ToString.TrimEnd
wdIndexwert = wdIndexwert.ToString.TrimStart
clsLogger.AddDetailLog("Ausgelesener Indexwert = '" & wdIndexwert & "'")
Logger.Info("Ausgelesener Indexwert = '" & wdIndexwert & "'")
konvention = konvention.Replace(reg_element.Value, wdIndexwert.ToString)
i += 1
Else
clsLogger.Add(">> Achtung gelesener Wert ist ein Vektorfeld - keine Umbenennung möglich ", False, "clsProfil.Profil_Durchlauf")
Logger.Warn("Achtung gelesener Wert ist ein Vektorfeld - keine Umbenennung möglich ")
End If
End If
Next
Dim version As Integer = 2
Dim ZielPfad As String = Path.GetDirectoryName(aktfile_Exportresult)
clsLogger.AddDetailLog("ZielPfad: " & ZielPfad)
Logger.Info("ZielPfad: " & ZielPfad)
Dim Filename = konvention
Dim Extension = Path.GetExtension(aktfile_Exportresult)
clsLogger.AddDetailLog("Extension: " & Extension)
Logger.Info("Extension: " & Extension)
Dim tempFilename As String = ZielPfad & "\" & Filename & Extension
clsLogger.AddDetailLog("tempFilename: " & tempFilename)
Logger.Info("tempFilename: " & tempFilename)
'Überprüfen ob File existiert
Do While IO.File.Exists(tempFilename) = True
tempFilename = ZielPfad & "\" & Filename & "~" & version & Extension
version += 1
Loop
clsLogger.AddDetailLog("RenameFile - OLDFilename: " & aktfile_Exportresult & " - NEWFilename: " & Path.GetFileName(tempFilename))
Logger.Info("RenameFile - OLDFilename: " & aktfile_Exportresult & " - NEWFilename: " & Path.GetFileName(tempFilename))
My.Computer.FileSystem.RenameFile(aktfile_Exportresult, Path.GetFileName(tempFilename))
clsLogger.Add(">> Datei wurde erfolgreich umbenannt.", False, "clsProfil.RenameFile")
Logger.Info("Datei wurde erfolgreich umbenannt.")
Return True
Catch ex As Exception
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.RenameFile")
Logger.Error(ex)
Return False
End Try
End Function
@@ -153,9 +156,9 @@ Public Class clsDateiverarbeitung
Try
Dim WMIndexwert
Dim ZielPfad As String = Path.GetDirectoryName(aktfile_Exportresult)
clsLogger.AddDetailLog("ZielPfad: " & ZielPfad)
Logger.Info("ZielPfad: " & ZielPfad)
Dim Extension = Path.GetExtension(aktfile_Exportresult)
clsLogger.AddDetailLog("Extension: " & Extension)
Logger.Info("Extension: " & Extension)
If WMINDEX_NAME.StartsWith("[%") Then
WMINDEX_NAME = WMINDEX_NAME.Replace("[%", "")
@@ -164,7 +167,7 @@ Public Class clsDateiverarbeitung
'den Wert des Indexes für das aktuelle Dokument auslesen
WMIndexwert = WMFile.GetVariableValue(WMINDEX_NAME)
If WMIndexwert.GetType.ToString.Contains("System.Object") Then
clsLogger.AddDetailLog("Rename_File_Vektor in Progress for index " & WMINDEX_NAME)
Logger.Info("Rename_File_Vektor in Progress for index " & WMINDEX_NAME)
Dim anz As Integer = 1
Dim copybasefile As String
For Each WMvalue As Object In WMIndexwert
@@ -172,9 +175,9 @@ Public Class clsDateiverarbeitung
Try
If WMvalue.ToString <> String.Empty Then
Dim tempFilename As String = ZielPfad & "\" & WMvalue & Extension
clsLogger.AddDetailLog("tempFilename: " & tempFilename)
Logger.Info("tempFilename: " & tempFilename)
If anz = 1 Then
clsLogger.AddDetailLog("RenameFile - OLDFilename: " & aktfile_Exportresult & " - NEWFilename: " & Path.GetFileName(tempFilename))
Logger.Info("RenameFile - OLDFilename: " & aktfile_Exportresult & " - NEWFilename: " & Path.GetFileName(tempFilename))
My.Computer.FileSystem.RenameFile(aktfile_Exportresult, Path.GetFileName(tempFilename))
copybasefile = tempFilename
Else
@@ -190,18 +193,20 @@ Public Class clsDateiverarbeitung
End If
Catch ex As Exception
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsDateiverarbeitung.ForEachWMvalue")
Logger.Error(ex)
'
End Try
Next
Else
clsLogger.Add(">> Achtung WMIndex " & WMINDEX_NAME & " scheint kein Vektorfeld zu sein!", False, "clsDateiverarbeitung.Rename_File_Vektor")
Logger.Warn("Achtung WMIndex " & WMINDEX_NAME & " scheint kein Vektorfeld zu sein!")
Return False
End If
clsLogger.Add(">> Dateien wurde erfolgreich nach Vektorfeld erzeugt.", False, "clsDateiverarbeitung.Rename_File_Vektor")
Logger.Info("Dateien wurde erfolgreich nach Vektorfeld erzeugt.")
Return True
Catch ex As Exception
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsDateiverarbeitung.Rename_File_Vektor")
Logger.Error(ex)
End Try
End Function
@@ -264,8 +269,8 @@ Public Class clsDateiverarbeitung
Dim geschaeftsId = SENDUNGNR
Dim url As String = $"http://{apiAddress}/onwebui/api/Customer/{mandatenId}/{geschaeftsObjekt}/{geschaeftsId}/dokument"
clsLogger.Add($">> Generiertes JSON: {json}", False, "BNSjsonDownload")
clsLogger.Add($">> Creating WebRequest for {url}", False, "BNSjsonDownload")
Logger.Info($">> Generiertes JSON: {json}")
Logger.Info($">> Creating WebRequest for {url}")
Dim req As HttpWebRequest = WebRequest.CreateHttp(url)
@@ -279,8 +284,8 @@ Public Class clsDateiverarbeitung
reqStream.Write(bytes, 0, bytes.Length)
reqStream.Close()
clsLogger.Add($">> Datei wird hochgeladen... docId: {DOKID}, dokart: {DOKART}, userId: {userId}", False, "BNSjsonDownload")
clsLogger.Add($">> Upload URL: {url}", False, "BNSjsonDownload")
Logger.Info($">> Datei wird hochgeladen... docId: {DOKID}, dokart: {DOKART}, userId: {userId}")
Logger.Info($">> Upload URL: {url}")
Using res As HttpWebResponse = req.GetResponse()
Dim code As HttpStatusCode = res.StatusCode
@@ -288,14 +293,15 @@ Public Class clsDateiverarbeitung
' Status 201 Created bedeutet: Alles okay!
If code = HttpStatusCode.Created Then
clsLogger.Add($">> Datei geschrieben! docId: {DOKID}, dokart: {DOKART}, userId: {userId}", False, "BNSjsonDownload")
Logger.Info($">> Datei geschrieben! docId: {DOKID}, dokart: {DOKART}, userId: {userId}")
Else
Throw New Exception($"Server Error (HTTP {code}: {text})")
End If
End Using
Return True
Catch ex As Exception
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message & " - " & ex.Source, "BNSjsonDownload")
Logger.Error(ex)
Return True
End Try
End Function
@@ -314,7 +320,8 @@ Public Class clsDateiverarbeitung
End If
Catch ex As Exception
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "RUN_ORACLE_COMMAND")
Logger.Error(ex)
Return False
End Try
End Function
@@ -333,14 +340,15 @@ Public Class clsDateiverarbeitung
End If
Catch ex As Exception
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "RUN_MSSQL_COMMAND")
Logger.Error(ex)
Return False
End Try
End Function
Public Shared Function REGEX_REPLACE(WMFile As WMObject, _STRING As String)
Try
clsLogger.AddDetailLog("REGEX_String before replacing: '" & _STRING & "'")
Logger.Info("REGEX_String before replacing: '" & _STRING & "'")
' Regulären Ausdruck zum Auslesen der windream-Indexe definieren
Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
' einen Regulären Ausdruck laden
@@ -353,7 +361,7 @@ Public Class clsDateiverarbeitung
' die Zeichen [% und ] entfernen (liefert den wirklichen windream-Index)
Dim reg_element_Ohne_SZ As String = reg_element.Value.Replace("[%", "")
reg_element_Ohne_SZ = reg_element_Ohne_SZ.Replace("]", "")
clsLogger.AddDetailLog("read indexvalue from index '" & reg_element_Ohne_SZ & "'....")
Logger.Info("read indexvalue from index '" & reg_element_Ohne_SZ & "'....")
If reg_element_Ohne_SZ = "EXPORTED_FILENAME" Then
If clsCURRENT.EXPORTED_FILENAME <> "" Then
_STRING = _STRING.Replace(reg_element.Value, clsCURRENT.EXPORTED_FILENAME)
@@ -369,14 +377,14 @@ Public Class clsDateiverarbeitung
If Not wdIndexwert.GetType.ToString.Contains("System.Object") Then
wdIndexwert = wdIndexwert.ToString.TrimEnd
wdIndexwert = wdIndexwert.ToString.TrimStart
clsLogger.AddDetailLog("indexvalue read is: '" & wdIndexwert & "'")
Logger.Info("indexvalue read is: '" & wdIndexwert & "'")
_STRING = _STRING.Replace(reg_element.Value, wdIndexwert.ToString)
clsLogger.AddDetailLog("REGEX_String (" & i & ") " & _STRING)
Logger.Info("REGEX_String (" & i & ") " & _STRING)
i += 1
Else
clsLogger.Add(">> Attention: WMIndex is an vectorfield - seperation of values via ;", False, "clsDateiverarbeitung.REGEX_REPLACE")
clsLogger.AddDetailLog("wdIndexValue is System.Object....")
clsLogger.AddDetailLog("trying to seperate via ,....")
Logger.Warn("Attention: WMIndex is an vectorfield - seperation of values via ;")
Logger.Info("wdIndexValue is System.Object....")
Logger.Info("trying to seperate via ,....")
Dim vector_result As String = ""
For Each WMvalue As Object In wdIndexwert
Dim x As Integer = 0
@@ -392,10 +400,10 @@ Public Class clsDateiverarbeitung
End If
Next
_STRING = _STRING.Replace(reg_element.Value, vector_result.ToString)
clsLogger.AddDetailLog("REGEX_String after vector-for-each (" & i & ") " & _STRING)
Logger.Info("REGEX_String after vector-for-each (" & i & ") " & _STRING)
End If
Else
clsLogger.Add(">> Attention: Indexvalue is NOTHING, standardvalue '0' will be used", False, "clsDateiverarbeitung.REGEX_REPLACE")
Logger.Warn("Attention: Indexvalue is NOTHING, standardvalue '0' will be used", False, "clsDateiverarbeitung.REGEX_REPLACE")
_STRING = _STRING.Replace(reg_element.Value, "0")
End If
End If
@@ -404,7 +412,8 @@ Public Class clsDateiverarbeitung
Next
Return _STRING
Catch ex As Exception
clsLogger.AddError("Unexpected error: " & ex.Message, "REGEX_REPLACE")
Logger.Error(ex)
Return Nothing
End Try
End Function