MS
This commit is contained in:
@@ -2,4 +2,6 @@
|
||||
Public CURRENToWMSession_Created As Date = Now
|
||||
Public CURRENToWMConnect As Object
|
||||
Public CURRENToWMSession As Object
|
||||
Public CURRENT_WMDriveLetter As String = "W"
|
||||
|
||||
End Module
|
||||
|
||||
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
||||
' übernehmen, indem Sie "*" eingeben:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("1.0.0.0")>
|
||||
<Assembly: AssemblyVersion("2.0.0.0")>
|
||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||
|
||||
@@ -8,6 +8,6 @@
|
||||
Public Shared DT_TBDD_EMAIL As DataTable = Nothing
|
||||
Public Shared CONCATTED_FILE As String = ""
|
||||
Public Shared _PROFIL_ID, _profGUID As Integer
|
||||
|
||||
Public Shared TEMP_FILES As List(Of String) = New List(Of String)
|
||||
Public Shared _proflastRun As Date
|
||||
End Class
|
||||
|
||||
@@ -54,6 +54,7 @@ Public Class clsDatabase
|
||||
Oracle_Command.AddToStatementCache = True
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Warn($"PLSQL-Command: [{plsqlcommand}]")
|
||||
Logger.Error(ex)
|
||||
'clsLogger.Add(ex.Message, True, "clsDatatabase.plsqlcommandDefine")
|
||||
Oracle_Conn.Close()
|
||||
@@ -71,6 +72,7 @@ Public Class clsDatabase
|
||||
Return True
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Warn($"PLSQL-Command: [{plsqlcommand}]")
|
||||
Logger.Error(ex)
|
||||
'clsLogger.Add(ex.Message & vbNewLine & "Execute Command => (" & plsqlcommand & ")", True, "clsDatatabase.ExecuteonOracleDb")
|
||||
Oracle_Conn.Close()
|
||||
@@ -88,6 +90,7 @@ Public Class clsDatabase
|
||||
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Warn($"PLSQL-Command: [{plsqlcommand}]")
|
||||
Logger.Error(ex)
|
||||
'clsLogger.Add("Unexpected Error in ExecuteonOracleDb: " & ex.Message & vbNewLine & "SQL: " & plsqlcommand, True, "clsDatatabase.ExecuteonOracleDb")
|
||||
' an dieser Stelle sollte jeder unvorhergesehene Fehler der Funktion abgefangen werden
|
||||
|
||||
@@ -4,6 +4,7 @@ Imports System.Net
|
||||
Imports Newtonsoft.Json
|
||||
Imports System.Text
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports System.Text.RegularExpressions
|
||||
|
||||
Public Class clsDateiverarbeitung
|
||||
Dim Logger As Logger
|
||||
@@ -122,64 +123,134 @@ Public Class clsDateiverarbeitung
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
'Kopiert die übergebene Datei in den Zielpfad
|
||||
Public Function Export_File(WDDatei As WMObject, Zielpfad As String)
|
||||
Private Function CleanInput(strIn As String) As String
|
||||
' Replace invalid characters with empty strings.
|
||||
Try
|
||||
If Not Zielpfad.EndsWith("\") Then
|
||||
Zielpfad = Zielpfad & "\"
|
||||
Return Regex.Replace(strIn, "[^\w\.@-]", "")
|
||||
' If we timeout when replacing invalid characters,
|
||||
' we should return String.Empty.
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Return String.Empty
|
||||
End Try
|
||||
End Function
|
||||
Public Function Export_WMFile2HDD(oWMFile As WMObject, MyExportpath As String)
|
||||
Try
|
||||
If Not MyExportpath.EndsWith("\") Then
|
||||
MyExportpath &= "\"
|
||||
End If
|
||||
|
||||
Logger.Info("Verarbeitung von Datei: " & WDDatei.aName)
|
||||
'Die Quelle zusammensetzen
|
||||
Logger.Debug("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
|
||||
Logger.Debug("ExportFileIO erzeugt.....")
|
||||
' Stream Interface bereitstellen
|
||||
WDDatei.LockFor(WMObjectEditModeFileSystem)
|
||||
Try
|
||||
If Not WDDatei.aLocked Then
|
||||
WDDatei.lock()
|
||||
End If
|
||||
Logger.Info("Working on WMFile: " & oWMFile.aName)
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex) 'clsLogger.AddError("Unvorhergesehener Fehler beim Lock-Vorgang: " & ex.Message, "clsDV.Export_File")
|
||||
Logger.Error(ex)
|
||||
Return False
|
||||
End Try
|
||||
Dim ExportFileIO = New WMOTOOLLib.WMFileIO ' CreateObject("WMOTOOLLib.WMFileIO") ' New WMOTOOLLib.WMFileIO
|
||||
Logger.Debug("ExportFileIO created...")
|
||||
|
||||
Dim oWMStream = WDDatei.OpenStream("BinaryObject", WMObjectStreamOpenModeReadWrite)
|
||||
Dim oWMStream = oWMFile.OpenStream("BinaryObject", 1)
|
||||
'### VERSIONIERUNG ###
|
||||
Dim version As Integer = 2
|
||||
'Dim Stammname As String = System.IO.Path.GetFileNameWithoutExtension(Quelle)
|
||||
Dim Filename = WDDatei.aName.Substring(0, WDDatei.aName.LastIndexOf("."))
|
||||
Dim Extension = WDDatei.aName.Substring(WDDatei.aName.LastIndexOf("."))
|
||||
Dim tempFilename As String = Zielpfad & Filename & Extension
|
||||
Dim oFilename = oWMFile.aName.Substring(0, oWMFile.aName.LastIndexOf("."))
|
||||
Dim oExtension = oWMFile.aName.Substring(oWMFile.aName.LastIndexOf("."))
|
||||
Dim oTempFilename As String = MyExportpath & oFilename & oExtension
|
||||
'Überprüfen ob File existiert
|
||||
Do While IO.File.Exists(tempFilename) = True
|
||||
tempFilename = Zielpfad & Filename & "_" & version & Extension
|
||||
Do While IO.File.Exists(oTempFilename) = True
|
||||
oTempFilename = MyExportpath & oFilename & "_" & version & oExtension
|
||||
version = version + 1
|
||||
Loop
|
||||
Logger.Debug("Zieldateiname: " & tempFilename)
|
||||
Logger.Debug("Exportfilename is: " & oTempFilename)
|
||||
' den Dateiinhalt der neuen Datei zuweisen
|
||||
ExportFileIO.bstrOriginalFileName = oTempFilename
|
||||
ExportFileIO.aWMStream = oWMStream
|
||||
ExportFileIO.bstrOriginalFileName = tempFilename
|
||||
|
||||
'Das eigentliche kopieren
|
||||
ExportFileIO.ExportOriginal(True)
|
||||
' close the windream file stream
|
||||
oWMStream.Close()
|
||||
WDDatei.Save()
|
||||
WDDatei.unlock()
|
||||
clsCURRENT.EXPORTED_FILENAME = tempFilename
|
||||
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
|
||||
Logger.Error(ex)
|
||||
If File.Exists(oTempFilename) Then
|
||||
clsCURRENT.EXPORTED_FILENAME = oTempFilename
|
||||
Logger.Info($"File Export to HDD [{clsCURRENT.EXPORTED_FILENAME}]was successfull (File.Exists = True)!")
|
||||
aktfile_Exportresult = clsCURRENT.EXPORTED_FILENAME
|
||||
clsCURRENT.TEMP_FILES.Add(clsCURRENT.EXPORTED_FILENAME)
|
||||
Logger.Debug("FileInfo Added to variables...")
|
||||
Return True
|
||||
Else
|
||||
Logger.Warn($"Export not successfull or File.Exists = false Export: [{oTempFilename}]")
|
||||
Return False
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Logger.Info("Unexpected error in Export_WMFile: " & ex.Message)
|
||||
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 & "'")
|
||||
@@ -416,6 +487,9 @@ Public Class clsDateiverarbeitung
|
||||
Dim result = REGEX_REPLACE(WMFile, OracleCommandRAW)
|
||||
If result = Nothing Then
|
||||
Return False
|
||||
ElseIf result.ToString.Contains("[%") Then
|
||||
Logger.Warn($"Replace Function OracleCommandRAW did not match all patterns: {result.ToString}")
|
||||
Return False
|
||||
End If
|
||||
|
||||
|
||||
@@ -436,6 +510,9 @@ Public Class clsDateiverarbeitung
|
||||
Dim result = REGEX_REPLACE(WMFile, SQLCommandRAW)
|
||||
If result = Nothing Then
|
||||
Return False
|
||||
ElseIf result.ToString.Contains("[%") Then
|
||||
Logger.Warn($"Replace Function SQLCommandRAW did not match all patterns: {result.ToString}")
|
||||
Return False
|
||||
End If
|
||||
|
||||
|
||||
@@ -611,7 +688,7 @@ Public Class clsDateiverarbeitung
|
||||
Logger.Debug("REGEX_String after vector-for-each (" & i & ") " & _STRING)
|
||||
End If
|
||||
Else
|
||||
Logger.Warn("Attention: Indexvalue is NOTHING, standardvalue '0' will be used", False, "clsDateiverarbeitung.REGEX_REPLACE")
|
||||
Logger.Info($"Attention: Indexvalue for Index [{reg_element_Ohne_SZ}]is NOTHING, standardvalue '0' will be used - clsDateiverarbeitung.REGEX_REPLACE")
|
||||
_STRING = _STRING.Replace(reg_element.Value, "0")
|
||||
End If
|
||||
End If
|
||||
|
||||
@@ -4,6 +4,9 @@ Imports Independentsoft.Email
|
||||
Imports Independentsoft.Email.Smtp
|
||||
Imports Independentsoft.Email.Mime
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports System.Net.Mail
|
||||
Imports System.Net
|
||||
Imports System.Net.Mime
|
||||
|
||||
Public Class clsEmail
|
||||
Dim Logger As DigitalData.Modules.Logging.Logger
|
||||
@@ -15,30 +18,135 @@ Public Class clsEmail
|
||||
mailfrom As String, mailsmtp As String, mailport As Integer, mailUser As String, mailPW As String,
|
||||
AUTH_TYPE As String, Optional attment As String = "")
|
||||
Try
|
||||
Dim message As New Message()
|
||||
message.From = New Mailbox(mailUser, mailUser)
|
||||
message.To.Add(New Mailbox(mailto))
|
||||
message.Subject = mailSubject
|
||||
message.Body = mailBody
|
||||
message.ContentType = New ContentType("text", "plain", "iso-8859-1")
|
||||
message.ContentTransferEncoding = ContentTransferEncoding.QuotedPrintable
|
||||
Dim oReceipiants As String()
|
||||
If mailto.Contains(";") Then
|
||||
oReceipiants = mailto.Split(";")
|
||||
Else
|
||||
ReDim Preserve oReceipiants(0)
|
||||
oReceipiants(0) = mailto
|
||||
End If
|
||||
For Each oMailReceipiant As String In oReceipiants
|
||||
Dim sClient = New Mail.SmtpClient(mailsmtp)
|
||||
Dim mymesssage As New MailMessage
|
||||
sClient.Port = mailport
|
||||
If AUTH_TYPE = "SSL" Then
|
||||
sClient.EnableSsl = True
|
||||
Else
|
||||
sClient.EnableSsl = False
|
||||
End If
|
||||
|
||||
Dim client As New SmtpClient(mailsmtp, mailport)
|
||||
client.EnableSsl = True
|
||||
client.ValidateRemoteCertificate = False
|
||||
sClient.Credentials = New NetworkCredential(mailUser, mailPW)
|
||||
sClient.UseDefaultCredentials = False
|
||||
|
||||
mymesssage.Body = $"This is the body (text will be replaced within profile)! <br> mailsmtp: {mailsmtp} <br> mailport: {mailport} <br> mailUser: {mailUser} <br> mailPW: XXXX <br> AUTH_TYPE: {AUTH_TYPE}"
|
||||
Dim htmlView As AlternateView = AlternateView.CreateAlternateViewFromString(mymesssage.Body)
|
||||
htmlView.ContentType = New System.Net.Mime.ContentType("text/html")
|
||||
mymesssage.AlternateViews.Add(htmlView)
|
||||
|
||||
mymesssage.From = New MailAddress(mailfrom)
|
||||
mymesssage.Subject = mailSubject
|
||||
mymesssage.To.Add(New MailAddress(oMailReceipiant))
|
||||
|
||||
If attment <> String.Empty Then
|
||||
Dim oAttment As String = attment.Replace("W:\", "\\windream\objects\")
|
||||
|
||||
If System.IO.File.Exists(oAttment) Then
|
||||
Logger.Info($"working on attachment {oAttment}...")
|
||||
Dim oAttachment As New System.Net.Mail.Attachment(oAttment)
|
||||
|
||||
mymesssage.Attachments.Add(oAttachment)
|
||||
Else
|
||||
MsgBox($"Attachment {oAttment.ToString} is not existing - Mail won't be send!")
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
sClient.Send(mymesssage)
|
||||
Logger.Info($"Email has been send to {oMailReceipiant}!!")
|
||||
Next
|
||||
|
||||
client.Connect()
|
||||
client.Login(mailUser, mailPW)
|
||||
|
||||
client.Send(message)
|
||||
client.Disconnect()
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End Try
|
||||
|
||||
End Function
|
||||
Public Function Email_Send(ByVal mailSubject As String, ByVal mailBody As String, mailto As String,
|
||||
mailfrom As String, mailsmtp As String, mailport As Integer, mailUser As String, mailPW As String,
|
||||
AUTH_TYPE As String, Optional attment As String = "", Optional Test As Boolean = False)
|
||||
Try
|
||||
Dim oError As Boolean = False
|
||||
Dim oReceipiants As String()
|
||||
If mailto.Contains(";") Then
|
||||
oReceipiants = mailto.Split(";")
|
||||
Else
|
||||
ReDim Preserve oReceipiants(0)
|
||||
oReceipiants(0) = mailto
|
||||
End If
|
||||
For Each oMailReceipiant As String In oReceipiants
|
||||
Dim sClient = New Net.Mail.SmtpClient(mailsmtp)
|
||||
Dim mymesssage As New MailMessage
|
||||
sClient.Port = mailport
|
||||
If AUTH_TYPE = "SSL" Then
|
||||
sClient.EnableSsl = True
|
||||
Else
|
||||
sClient.EnableSsl = False
|
||||
End If
|
||||
|
||||
sClient.Credentials = New NetworkCredential(mailUser, mailPW)
|
||||
sClient.UseDefaultCredentials = False
|
||||
If Test = True Then
|
||||
mymesssage.Body = $"This is the body (text will be replaced within profile)! <br> mailsmtp: {mailsmtp} <br> mailport: {mailport} <br> mailUser: {mailUser} <br> mailPW: XXXX <br> AUTH_TYPE: {AUTH_TYPE}"
|
||||
Else
|
||||
mymesssage.Body = mailBody
|
||||
End If
|
||||
|
||||
'mymesssage.IsBodyHtml = True
|
||||
Dim htmlView As AlternateView = AlternateView.CreateAlternateViewFromString(mymesssage.Body)
|
||||
htmlView.ContentType = New System.Net.Mime.ContentType("text/html")
|
||||
mymesssage.AlternateViews.Add(htmlView)
|
||||
attment = attment.Replace("W:\", "\\windream\objects\")
|
||||
If attment <> String.Empty Then
|
||||
If System.IO.File.Exists(attment) Then
|
||||
Logger.Info($"working on attachment {attment.ToString}...")
|
||||
Dim oAttachment As New System.Net.Mail.Attachment(attment)
|
||||
|
||||
'If attment.ToLower.EndsWith("pdf") Then
|
||||
' oAttachment.ContentType = New Independentsoft.Email.Mime.ContentType("application", "pdf")
|
||||
'ElseIf attment.ToLower.EndsWith("jpg") Then
|
||||
' oAttachment.ContentType = New Independentsoft.Email.Mime.ContentType("application", "jpg")
|
||||
'ElseIf attment.ToLower.EndsWith("docx") Then
|
||||
' oAttachment.ContentType = New Independentsoft.Email.Mime.ContentType("application", "MS-word")
|
||||
'End If
|
||||
mymesssage.Attachments.Add(oAttachment)
|
||||
Else
|
||||
Logger.Warn($"Attachment {attment.ToString} is not existing - Mail won't be send!")
|
||||
oError = True
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
mymesssage.From = New MailAddress(mailfrom)
|
||||
mymesssage.Subject = mailSubject
|
||||
mymesssage.To.Add(New MailAddress(oMailReceipiant))
|
||||
sClient.Send(mymesssage)
|
||||
Next
|
||||
If oError = False Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Return False
|
||||
End Try
|
||||
|
||||
End Function
|
||||
Public Function Email_Send_Independentsoft(ByVal mailSubject As String, ByVal mailBody As String, mailto As String,
|
||||
mailfrom As String, mailsmtp As String, mailport As Integer, mailUser As String, mailPW As String,
|
||||
AUTH_TYPE As String, Optional attment As String = "")
|
||||
@@ -64,28 +172,31 @@ Public Class clsEmail
|
||||
message.Subject = mailSubject
|
||||
Logger.Debug($"Message created..")
|
||||
Dim textBodyPart As New BodyPart()
|
||||
textBodyPart.ContentType = New ContentType("text", "html", "utf-8")
|
||||
textBodyPart.ContentType = New Independentsoft.Email.Mime.ContentType("text", "html", "utf-8")
|
||||
textBodyPart.ContentTransferEncoding = ContentTransferEncoding.QuotedPrintable
|
||||
textBodyPart.Body = mailBody
|
||||
message.BodyParts.Add(textBodyPart)
|
||||
attment = attment.Replace("W:\", "\\windream\objects\")
|
||||
If attment <> String.Empty Then
|
||||
If System.IO.File.Exists(attment) Then
|
||||
Dim attachment1 As New Attachment(attment)
|
||||
Logger.Info($"working on attachment {attment.ToString}...")
|
||||
Dim attachment1 As New Independentsoft.Email.Mime.Attachment(attment)
|
||||
If attment.ToLower.EndsWith("pdf") Then
|
||||
attachment1.ContentType = New ContentType("application", "pdf")
|
||||
attachment1.ContentType = New Independentsoft.Email.Mime.ContentType("application", "pdf")
|
||||
ElseIf attment.ToLower.EndsWith("jpg") Then
|
||||
attachment1.ContentType = New ContentType("application", "jpg")
|
||||
attachment1.ContentType = New Independentsoft.Email.Mime.ContentType("application", "jpg")
|
||||
ElseIf attment.ToLower.EndsWith("docx") Then
|
||||
attachment1.ContentType = New ContentType("application", "MS-word")
|
||||
attachment1.ContentType = New Independentsoft.Email.Mime.ContentType("application", "MS-word")
|
||||
End If
|
||||
message.BodyParts.Add(attachment1)
|
||||
Else
|
||||
Logger.Warn($"Attachment {attment.ToString} is not existing!")
|
||||
Logger.Warn($"Attachment {attment.ToString} is not existing - Mail won't be send!")
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
Dim client As SmtpClient
|
||||
Dim client As Smtp.SmtpClient
|
||||
Try
|
||||
client = New SmtpClient(mailsmtp, mailport)
|
||||
client = New Smtp.SmtpClient(mailsmtp, mailport)
|
||||
Catch ex As Exception
|
||||
Logger.Warn("clsEmail.Create Client: " & ex.Message)
|
||||
_error = True
|
||||
|
||||
@@ -44,7 +44,7 @@ Public Class clsJob_Work
|
||||
Logger.Warn("PWPlain is Nothing - Could not decrypt passwort 44")
|
||||
Return False
|
||||
End If
|
||||
If _mail.Email_Send_Independentsoft(Email_subject, Email_Body, Email_receipiants, oMAILFROM, oMAILSMTP, oMAIL_PORT, oMAIL_USER, oMAIL_USER_PW, oMAIL_AUTH_TYPE, Attachment_Filename) = True Then
|
||||
If _mail.Email_Send(Email_subject, Email_Body, Email_receipiants, oMAILFROM, oMAILSMTP, oMAIL_PORT, oMAIL_USER, oMAIL_USER_PW, oMAIL_AUTH_TYPE, Attachment_Filename) = True Then
|
||||
Return True
|
||||
Else
|
||||
Logger.Warn("Email_Send_Independentsoft was not successfull!")
|
||||
|
||||
@@ -128,6 +128,7 @@ Public Class clsProfil
|
||||
Logger.Info($"Working on profile '{_Profilname}'")
|
||||
clsCURRENT.DT_TBDD_EMAIL = _database.Return_Datatable("SELECT * FROM TBDD_EMAIL_ACCOUNT WHERE ACTIVE = 1")
|
||||
clsCURRENT.PROFILE_HandledFiles = Nothing
|
||||
clsCURRENT.EXPORTED_FILENAME = ""
|
||||
Logger.Debug("Start RUN of profile '" & _Profilname & "'")
|
||||
'den Durchlaufszeitpunkt speichern
|
||||
If File.Exists(_profwdSuche) = False Then
|
||||
@@ -160,7 +161,11 @@ Public Class clsProfil
|
||||
Dim FileJobSuccessful As Boolean = False
|
||||
Dim CountExportedDoc As Integer = 0
|
||||
clsCURRENT.PROFILE_HandledFiles = Nothing
|
||||
Dim oFileRunNo As String
|
||||
Dim oCountDocs As Integer = 0
|
||||
For Each WMdok As WMObject In windreamSucheErgebnisse
|
||||
oCountDocs += 1
|
||||
oFileRunNo = "#DocRun" & oCountDocs.ToString
|
||||
For Each DR_PR_JB As DataRow In DT_PROFIL_JOB.Rows
|
||||
Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper
|
||||
Case "Create Mail Attachment".ToUpper
|
||||
@@ -178,6 +183,15 @@ Public Class clsProfil
|
||||
If Not IsNothing(clsCURRENT.DT_TBDD_EMAIL) And clsCURRENT.DT_TBDD_EMAIL.Rows.Count >= 1 Then
|
||||
Dim oAttachment = clsCURRENT.WDLAUFWERK & ":" & WMdok.aPath
|
||||
|
||||
If _dateiverarbeitung.Export_WMFile2HDD(WMdok, Path.GetTempPath()) = True Then
|
||||
oAttachment = clsCURRENT.EXPORTED_FILENAME
|
||||
|
||||
Else
|
||||
Logger.Warn($"Could not create a tempfile...")
|
||||
FileJobSuccessful = False
|
||||
Return False
|
||||
End If
|
||||
|
||||
|
||||
Dim MAILFROM As String = ""
|
||||
Dim MAILSMTP As String = ""
|
||||
@@ -201,16 +215,10 @@ Public Class clsProfil
|
||||
|
||||
Dim PWPlain = wrapper.DecryptData(MAIL_USER_PW)
|
||||
If Not IsNothing(PWPlain) Then
|
||||
If PWPlain <> "" Then
|
||||
MAIL_USER_PW = PWPlain
|
||||
Else
|
||||
Logger.Warn("PWPlain is string.empty - Could not decrypt passwort181")
|
||||
|
||||
Return False
|
||||
End If
|
||||
MAIL_USER_PW = PWPlain
|
||||
|
||||
Else
|
||||
Logger.Warn("PWPlain is string.empty - Could not decrypt passwort188")
|
||||
Logger.Warn("PWPlain is Nothing - Could not decrypt passwort188")
|
||||
|
||||
Return False
|
||||
End If
|
||||
@@ -222,32 +230,34 @@ Public Class clsProfil
|
||||
Email_Betreff = _dateiverarbeitung.REGEX_REPLACE(WMdok, Email_Betreff)
|
||||
Email_Body = _dateiverarbeitung.REGEX_REPLACE(WMdok, Email_Body)
|
||||
|
||||
If _email.Email_Send_Independentsoft(Email_Betreff, Email_Body, Email_Empfänger, MAILFROM, MAILSMTP, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_AUTH_TYPE, oAttachment) = True Then
|
||||
If _email.Email_Send(Email_Betreff, Email_Body, Email_Empfänger, MAILFROM, MAILSMTP, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_AUTH_TYPE, oAttachment) = True Then
|
||||
FileJobSuccessful = True
|
||||
Else
|
||||
|
||||
Logger.Warn("Email_Send_Independentsoft was not successfull!")
|
||||
Logger.Warn($"{oFileRunNo} Email_Send_Independentsoft 1 was not successfull!")
|
||||
FileJobSuccessful = False
|
||||
End If
|
||||
Else
|
||||
Logger.Warn("DT_TBDD_EMAIL is nothing or contains no rows")
|
||||
Logger.Warn($"{oFileRunNo} DT_TBDD_EMAIL is nothing or contains no rows")
|
||||
Return False
|
||||
End If
|
||||
|
||||
Case "Export HDD".ToUpper
|
||||
Logger.Info("JobType: Case Export HDD")
|
||||
Logger.Info($"{oFileRunNo} JobType: Case Export HDD")
|
||||
'Für jedes Dokument in der Windream-Ergebnisliste
|
||||
'For Each dok As WMObject In windreamSucheErgebnisse
|
||||
' aktuelles Dokument zum Export bereitstellen
|
||||
clsCURRENT.EXPORTED_FILENAME = ""
|
||||
If _dateiverarbeitung.Export_File(WMdok, DR_PR_JB.Item("STRING1")) = True Then
|
||||
If _dateiverarbeitung.Export_WMFile2HDD(WMdok, DR_PR_JB.Item("STRING1")) = True Then
|
||||
ReDim Preserve clsCURRENT.PROFILE_HandledFiles(CountExportedDoc)
|
||||
clsCURRENT.PROFILE_HandledFiles(CountExportedDoc) = clsCURRENT.EXPORTED_FILENAME
|
||||
CountExportedDoc += 1
|
||||
FileJobSuccessful = True
|
||||
Logger.Info($"{oFileRunNo} Export HDD completed!")
|
||||
End If
|
||||
'Next
|
||||
Case "BNS json Download".ToUpper
|
||||
Logger.Info("JobType: BNS json Download")
|
||||
Logger.Info($"{oFileRunNo} JobType: BNS json Download")
|
||||
FileJobSuccessful = _dateiverarbeitung.BNSjsonDownload(WMdok, DR_PR_JB.Item("STRING1"), DR_PR_JB.Item("STRING2"))
|
||||
'Case "Send to printer".ToUpper
|
||||
' Logger.Info("JobType: Send to printer")
|
||||
@@ -305,9 +315,26 @@ Public Class clsProfil
|
||||
'Für jeden File-Job
|
||||
For Each DR_PR_FILE_JOB As DataRow In DT_PROFIL_FILE_JOB.Rows
|
||||
If FileJobSuccessful = False Then
|
||||
Logger.Info("AUSSTIEG FOR SCHLEIFE cause FileJobSuccessful = False...")
|
||||
Logger.Info($"{oFileRunNo} AUSSTIEG FOR SCHLEIFE cause FileJobSuccessful = False...")
|
||||
Exit For
|
||||
End If
|
||||
|
||||
If DR_PR_FILE_JOB.Item("STRING2").ToString.Contains("EXPORTED_FILENAME") Then
|
||||
If clsCURRENT.EXPORTED_FILENAME = "" Then
|
||||
Logger.Warn($"{oFileRunNo} clsCURRENT.EXPORTED_FILENAME Is empty! So FileJobSuccessful will be set to FALSE")
|
||||
FileJobSuccessful = False
|
||||
Continue For
|
||||
Else
|
||||
If File.Exists(clsCURRENT.EXPORTED_FILENAME) = False Then
|
||||
Logger.Warn($"{oFileRunNo} clsCURRENT.EXPORTED_FILENAME [{clsCURRENT.EXPORTED_FILENAME}] not existing! So FileJobSuccessful will be set to FALSE")
|
||||
FileJobSuccessful = False
|
||||
Continue For
|
||||
Else
|
||||
Logger.Debug($"{oFileRunNo} clsCURRENT.EXPORTED_FILENAME [{clsCURRENT.EXPORTED_FILENAME}] exists!")
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
Select Case DR_PR_FILE_JOB.Item("TYP").ToString.ToLower
|
||||
Case "Set Index".ToLower
|
||||
Try
|
||||
@@ -319,17 +346,17 @@ Public Class clsProfil
|
||||
idxvalue = idxvalue.Replace("[%DATETIME]", Now.ToString)
|
||||
End If
|
||||
idxvalue = _dateiverarbeitung.REGEX_REPLACE(WMdok, idxvalue)
|
||||
Logger.Debug($"Index '{idxName}' shall be set with value '{idxvalue}'")
|
||||
Logger.Debug($"{oFileRunNo} Index '{idxName}' shall be set with value '{idxvalue}'")
|
||||
Dim arrIndex() As String
|
||||
ReDim Preserve arrIndex(0)
|
||||
arrIndex(0) = idxName
|
||||
Logger.Debug("...nach arrIndex")
|
||||
Logger.Debug($"{oFileRunNo} ...nach arrIndex")
|
||||
|
||||
Dim arrValue() As String
|
||||
|
||||
Dim aktvalue As Object
|
||||
aktvalue = WMdok.GetVariableValue(idxName)
|
||||
Logger.Debug("...nach aktValue zuweisen..")
|
||||
Logger.Debug($"{oFileRunNo} ...nach aktValue zuweisen..")
|
||||
Dim wmtype = clsWindream_allgemein.GetTypeOfIndexAsIntByName(idxName)
|
||||
Dim is_vektor As Boolean = False
|
||||
Select Case wmtype
|
||||
@@ -372,9 +399,10 @@ Public Class clsProfil
|
||||
' 07.01.2019: Weitere Jobs bei Fehler in RunIndexing überspringen
|
||||
If oErrorOccurred = True Then
|
||||
FileJobSuccessful = False
|
||||
|
||||
End If
|
||||
Else
|
||||
Logger.Warn("arrValue is nothing - keine Indexierung")
|
||||
Logger.Warn($"{oFileRunNo} arrValue is nothing - keine Indexierung")
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
@@ -382,14 +410,14 @@ Public Class clsProfil
|
||||
'clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(SetIndex)")
|
||||
End Try
|
||||
Case "Rename File with windream Index".ToLower
|
||||
Logger.Debug("Exportierte Datei soll nach Indexvorgaben umbenannt werden...")
|
||||
Logger.Debug($"{oFileRunNo} Exportierte Datei soll nach Indexvorgaben umbenannt werden...")
|
||||
_dateiverarbeitung.Rename_File(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString)
|
||||
Case "Rename File with WMVector (only one)".ToLower
|
||||
Logger.Debug("Exportierte Datei soll nach VektorIndexvorgaben umbenannt werden...")
|
||||
Logger.Debug($"{oFileRunNo} Exportierte Datei soll nach VektorIndexvorgaben umbenannt werden...")
|
||||
_dateiverarbeitung.Rename_File_Vektor(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString)
|
||||
Case "Execute Oracle Command".ToLower
|
||||
Try
|
||||
Logger.Debug("Execute Oracle Command.......")
|
||||
Logger.Debug($"{oFileRunNo} Execute Oracle Command.......")
|
||||
Dim oracleconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString
|
||||
Dim oracleCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString
|
||||
FileJobSuccessful = _dateiverarbeitung.RUN_ORACLE_COMMAND(WMdok, oracleconnectionstring, oracleCommandRAW)
|
||||
@@ -401,7 +429,7 @@ Public Class clsProfil
|
||||
Try
|
||||
Dim MSSQLconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString
|
||||
Dim MSSQLCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString
|
||||
Logger.Debug("Execute MSSQL Command.......")
|
||||
Logger.Debug($"{oFileRunNo} Execute MSSQL Command.......")
|
||||
FileJobSuccessful = _dateiverarbeitung.RUN_MSSQL_COMMAND(WMdok, MSSQLconnectionstring, MSSQLCommandRAW)
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
@@ -426,8 +454,8 @@ Public Class clsProfil
|
||||
Logger.Debug("pdftk location: " & pdftk)
|
||||
clsCURRENT.CONCATTED_FILE = DR_PR_JB.Item("STRING1")
|
||||
Logger.Debug("CONCATTED_FILE location: " & clsCURRENT.CONCATTED_FILE)
|
||||
Dim deleteJaNein = DR_PR_JB.Item("STRING2").ToString.ToUpper
|
||||
Logger.Debug("deleteJaNein: " & deleteJaNein.ToString)
|
||||
Dim oDeleteResultFile = DR_PR_JB.Item("STRING2").ToString.ToUpper
|
||||
Logger.Debug("deleteJaNein: " & oDeleteResultFile.ToString)
|
||||
If File.Exists(pdftk) Then
|
||||
If File.Exists(clsCURRENT.CONCATTED_FILE) Then
|
||||
Try
|
||||
@@ -496,10 +524,11 @@ Public Class clsProfil
|
||||
|
||||
Loop
|
||||
sw.Stop()
|
||||
If deleteJaNein = "JA" Then
|
||||
If oDeleteResultFile = "JA" Then
|
||||
For Each str As String In clsCURRENT.PROFILE_HandledFiles
|
||||
Try
|
||||
File.Delete(str)
|
||||
Logger.Debug($"Deleted file [{str}]!")
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
@@ -562,10 +591,11 @@ Public Class clsProfil
|
||||
Return False
|
||||
End If
|
||||
|
||||
If _email.Email_Send_Independentsoft(Email_Betreff, Email_Body, Email_Empfänger, MAILFROM, MAILSMTP, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_AUTH_TYPE, clsCURRENT.CONCATTED_FILE) = True Then
|
||||
If _email.Email_Send(Email_Betreff, Email_Body, Email_Empfänger, MAILFROM, MAILSMTP, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_AUTH_TYPE, clsCURRENT.CONCATTED_FILE) = True Then
|
||||
FileJobSuccessful = True
|
||||
Else
|
||||
Logger.Warn("Email_Send_Independentsoft was not successfull!")
|
||||
Logger.Warn("Email_Send_Independentsoft 2 was not successfull!")
|
||||
FileJobSuccessful = False
|
||||
End If
|
||||
|
||||
|
||||
@@ -581,10 +611,10 @@ Public Class clsProfil
|
||||
Case "Send to printer".ToUpper
|
||||
Logger.Info("Working on CASE Send to printer.... ")
|
||||
Dim printername = DR_PR_JB.Item("STRING1")
|
||||
For Each str As String In clsCURRENT.PROFILE_HandledFiles
|
||||
For Each oFileString As String In clsCURRENT.PROFILE_HandledFiles
|
||||
Try
|
||||
Dim myproc As Process = New Process()
|
||||
myproc.StartInfo.FileName = """" & str & """"
|
||||
myproc.StartInfo.FileName = """" & oFileString & """"
|
||||
myproc.StartInfo.Verb = "printto"
|
||||
myproc.StartInfo.Arguments = printername
|
||||
myproc.StartInfo.UseShellExecute = True
|
||||
@@ -605,9 +635,10 @@ Public Class clsProfil
|
||||
FileJobSuccessful = True
|
||||
sw.Stop()
|
||||
' myproc.Kill()
|
||||
File.Delete(str)
|
||||
File.Delete(oFileString)
|
||||
Logger.Debug($"Deleted oFileString [{oFileString}]!")
|
||||
Catch ex As Exception
|
||||
Logger.Warn("Could not print (printto) file: " & str)
|
||||
Logger.Warn("Could not print (printto) file: " & oFileString)
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
Next
|
||||
|
||||
@@ -43,7 +43,7 @@ Public Class clsWindream_allgemein
|
||||
' wenn ein Fehler bei der Initialisierung auftrat
|
||||
If Not Init() Then
|
||||
' Nachricht ausgeben
|
||||
Logger.Warn("Es trat ein Fehler bei der Initialisierung der Klasse windream auf. Bitte prüfen Sie ob der windream-Server aktiv ist und alle Dienste gestartet sind")
|
||||
Logger.Warn("Error while initializing WM-Class!!")
|
||||
' das Programm "abschießen"
|
||||
Process.GetCurrentProcess.Kill()
|
||||
End If
|
||||
@@ -464,7 +464,7 @@ Public Class clsWindream_allgemein
|
||||
Return oSearch.execute
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Logger.Warn($"WM-SEARCH ({wdfLocation})")
|
||||
Logger.Warn($"WM-SEARCH in Exception ({wdfLocation})")
|
||||
Return Nothing
|
||||
End Try
|
||||
|
||||
@@ -552,10 +552,17 @@ Public Class clsWindream_allgemein
|
||||
If WMObjects.Count > 0 Then
|
||||
|
||||
For Each dok As WMObject In WMObjects
|
||||
Dim oPath As String = dok.aPath
|
||||
Dim oDOC_ID = dok.GetVariableValue(NameIndexDocID)
|
||||
Dim oCreated = dok.GetVariableValue(NameIndexCreated)
|
||||
Logger.Debug($"Adding DocInfo {oDOC_ID.ToString}|{oPath}|{oCreated}")
|
||||
Logger.Debug($"Adding DocInfo {oDOC_ID.ToString}|{dok.aPath}|{oCreated}")
|
||||
Dim oPath As String
|
||||
If dok.aPath.StartsWith("\") Then
|
||||
oPath = dok.aPath.Substring(1, dok.aPath.Length - 1)
|
||||
Else
|
||||
oPath = dok.aPath
|
||||
End If
|
||||
|
||||
|
||||
dtresult.Rows.Add(oDOC_ID, oPath, oCreated)
|
||||
Next
|
||||
dtresult.AcceptChanges()
|
||||
@@ -563,11 +570,33 @@ Public Class clsWindream_allgemein
|
||||
Return dtresult
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Logger.Warn($"WM-SEARCH ({wdfLocation})")
|
||||
Logger.Warn($"WM-SEARCH from GetSearchDocumentsDT ({wdfLocation})")
|
||||
Return dtresult
|
||||
End Try
|
||||
End Function
|
||||
Public Function TestFileExists(Path As String) As Boolean
|
||||
Return TestObjectExists(GetNormalizedPath(Path), WMEntityDocument)
|
||||
End Function
|
||||
Private Function TestObjectExists(ObjectName As String, ObjectType As WMEntity) As Boolean
|
||||
Try
|
||||
Dim oObjectId = 0
|
||||
Dim oObjectDbId = 0
|
||||
|
||||
Return CURRENToWMSession.WMObjectExists(ObjectType, ObjectName, oObjectId, oObjectDbId)
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex, "Error while checking existence of WMObject {0} of type {1}", ObjectName, ObjectType.ToString)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
Private Function GetNormalizedPath(Path As String) As String
|
||||
Dim oNormalizedPath = Path
|
||||
|
||||
If Not Path.StartsWith("\") And Path.ToUpper().StartsWith(CURRENT_WMDriveLetter.ToUpper) Then
|
||||
oNormalizedPath = Path.Substring(2)
|
||||
End If
|
||||
|
||||
Return oNormalizedPath
|
||||
End Function
|
||||
#End Region
|
||||
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user