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 & "\"
|
||||
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
|
||||
Return Regex.Replace(strIn, "[^\w\.@-]", "")
|
||||
' If we timeout when replacing invalid characters,
|
||||
' we should return String.Empty.
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex) 'clsLogger.AddError("Unvorhergesehener Fehler beim Lock-Vorgang: " & ex.Message, "clsDV.Export_File")
|
||||
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
|
||||
|
||||
|
||||
Try
|
||||
Logger.Info("Working on WMFile: " & oWMFile.aName)
|
||||
Catch ex As Exception
|
||||
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
|
||||
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
|
||||
Catch ex As Exception
|
||||
'bei einem Fehler einen Eintrag in der Logdatei machen
|
||||
Logger.Error(ex)
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
@@ -6,6 +6,9 @@
|
||||
</sectionGroup>
|
||||
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
|
||||
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
|
||||
<section name="DDWDResultHandler.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<connectionStrings />
|
||||
<startup>
|
||||
@@ -13,11 +16,11 @@
|
||||
</startup>
|
||||
<applicationSettings>
|
||||
<DDWDResultHandler.My.MySettings>
|
||||
<setting name="SQLSERVER_CS" serializeAs="String">
|
||||
<setting name="SQLSERVER_CS_RH" serializeAs="String">
|
||||
<value>Data Source=172.24.12.41\tests;Initial Catalog=DD_ECM_RENOLIT;Persist Security Info=True;User ID=sa;Password=dd</value>
|
||||
</setting>
|
||||
<setting name="SQLSERVER_CS_PMRefresh" serializeAs="String">
|
||||
<value>Data Source=172.24.12.41\tests;Initial Catalog=DD_ECM_TEST;Persist Security Info=True;User ID=sa;Password=dd</value>
|
||||
<value />
|
||||
</setting>
|
||||
</DDWDResultHandler.My.MySettings>
|
||||
</applicationSettings>
|
||||
@@ -40,4 +43,11 @@
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<userSettings>
|
||||
<DDWDResultHandler.My.MySettings>
|
||||
<setting name="PMREFRESH_INTERVALL" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
</DDWDResultHandler.My.MySettings>
|
||||
</userSettings>
|
||||
</configuration>
|
||||
@@ -9,7 +9,7 @@ Public Class DDWDResultHandler
|
||||
Private _database As DD_WMResulthandler.clsDatabase
|
||||
Private _profil As clsProfil
|
||||
|
||||
Public Shared threadRunner As BackgroundWorker
|
||||
Public Shared threadResultHandler As BackgroundWorker
|
||||
Public Shared threadPMRefresh As BackgroundWorker
|
||||
|
||||
Private Logger As Logger
|
||||
@@ -33,14 +33,6 @@ Public Class DDWDResultHandler
|
||||
' Code zum Starten des Dienstes hier einfügen. Diese Methode sollte Vorgänge
|
||||
' ausführen, damit der Dienst gestartet werden kann.
|
||||
'EventLog1.WriteEntry("Dienst 'DD windream Result Handler' gestartet")
|
||||
|
||||
Try
|
||||
If Not System.Diagnostics.EventLog.SourceExists("DDWMResultHandler") Then
|
||||
System.Diagnostics.EventLog.CreateEventSource("DDWMResultHandler", "DigitalData Log")
|
||||
End If
|
||||
Catch ex As Exception
|
||||
EventLog.WriteEntry("DDWMResultHandler", "ERROR in Creating source:" & ex.ToString(), EventLogEntryType.Error)
|
||||
End Try
|
||||
Try
|
||||
Try
|
||||
MyLogger = New LogConfig(LogConfig.PathType.CustomPath, Path.Combine(My.Application.Info.DirectoryPath, "Log"))
|
||||
@@ -52,12 +44,9 @@ Public Class DDWDResultHandler
|
||||
End Try
|
||||
|
||||
|
||||
If My.Settings.SQLSERVER_CS = String.Empty Then
|
||||
Logger.Warn("Achtung: Es wurde noch kein Datenbank-ConnectionString hinterlegt.")
|
||||
Else
|
||||
If _database.Init(My.Settings.SQLSERVER_CS, True) = False Then
|
||||
Logger.Warn("Achtung: Es konnte keine Verbindung zur Datenbank '" & My.Settings.SQLSERVER_CS & "' hergestellt werden!")
|
||||
Else
|
||||
'If _database.Init(My.Settings.SQLSERVER_CS_RH, True) = False Then
|
||||
' Logger.Warn("Achtung: Es konnte keine Verbindung zur Datenbank '" & My.Settings.SQLSERVER_CS_RH & "' hergestellt werden!")
|
||||
' Else
|
||||
|
||||
If clsCURRENT.LOG_ERRORS_ONLY = False Then
|
||||
MyLogger.Debug = True
|
||||
@@ -66,11 +55,11 @@ Public Class DDWDResultHandler
|
||||
End If
|
||||
oFirstRun = True
|
||||
' '#Thread für Durchlauf generieren
|
||||
DDWDResultHandler.threadRunner = New BackgroundWorker()
|
||||
DDWDResultHandler.threadRunner.WorkerReportsProgress = True
|
||||
DDWDResultHandler.threadRunner.WorkerSupportsCancellation = True
|
||||
AddHandler threadRunner.DoWork, AddressOf RUN_THREAD
|
||||
AddHandler threadRunner.RunWorkerCompleted, AddressOf Thread_Completed
|
||||
DDWDResultHandler.threadResultHandler = New BackgroundWorker()
|
||||
DDWDResultHandler.threadResultHandler.WorkerReportsProgress = True
|
||||
DDWDResultHandler.threadResultHandler.WorkerSupportsCancellation = True
|
||||
AddHandler threadResultHandler.DoWork, AddressOf RUN_RESULTHANDLER
|
||||
AddHandler threadResultHandler.RunWorkerCompleted, AddressOf Thread_Completed
|
||||
|
||||
' '### Den Timer generieren
|
||||
Dim Timer_Durchlauf As New System.Timers.Timer()
|
||||
@@ -78,7 +67,6 @@ Public Class DDWDResultHandler
|
||||
AddHandler Timer_Durchlauf.Elapsed, AddressOf Thread_Run
|
||||
' Set the Interval
|
||||
Timer_Durchlauf.Interval = 60000
|
||||
'ClassLogger.Add("Timer - Intervall: " & clsSQLITE.konf_intervall & " Minuten", False)
|
||||
Timer_Durchlauf.Enabled = True
|
||||
Logger.Debug("Timer gestartet")
|
||||
' Und den Durchlauf das erste Mal starten
|
||||
@@ -96,15 +84,22 @@ Public Class DDWDResultHandler
|
||||
'Das Event hinterlegen welches bei "Tick" ausgelöst wird
|
||||
AddHandler TimerPMRefresh.Elapsed, AddressOf ThreadPMRefreshRun
|
||||
|
||||
|
||||
' Und den Durchlauf das erste Mal starten
|
||||
threadRunner.RunWorkerAsync()
|
||||
' Set the Interval
|
||||
TimerPMRefresh.Interval = 120000 '2 minutes
|
||||
'ClassLogger.Add("Timer - Intervall: " & clsSQLITE.konf_intervall & " Minuten", False)
|
||||
TimerPMRefresh.Enabled = True
|
||||
'End If
|
||||
If My.Settings.SQLSERVER_CS_RH = "" And My.Settings.SQLSERVER_CS_PMRefresh <> "" Then
|
||||
Logger.Info("Thread PM Refresh will now be started for initial Run as Resulthandler's ConnString is empty...")
|
||||
threadPMRefresh.RunWorkerAsync()
|
||||
Else
|
||||
If My.Settings.SQLSERVER_CS_RH <> "" Then
|
||||
Logger.Info("Thread ResultHandler will now be started for initial Run..")
|
||||
threadResultHandler.RunWorkerAsync()
|
||||
Logger.Info("Thread PM Refresh will be started after 2mins for initial Run..")
|
||||
End If
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
EventLog.WriteEntry("DDWMResultHandler", "Unexpected error in OnStart: " & ex.ToString(), EventLogEntryType.Error)
|
||||
Logger.Error(ex)
|
||||
@@ -112,8 +107,8 @@ Public Class DDWDResultHandler
|
||||
|
||||
End Sub
|
||||
Public Sub Thread_Run()
|
||||
If Not threadRunner.IsBusy Then
|
||||
threadRunner.RunWorkerAsync()
|
||||
If Not threadResultHandler.IsBusy Then
|
||||
threadResultHandler.RunWorkerAsync()
|
||||
End If
|
||||
End Sub
|
||||
Public Sub ThreadPMRefreshRun()
|
||||
@@ -127,20 +122,24 @@ Public Class DDWDResultHandler
|
||||
Protected Overrides Sub OnStop()
|
||||
Try
|
||||
' Hier Code zum Ausführen erforderlicher Löschvorgänge zum Beenden des Dienstes einfügen.
|
||||
Logger.Warn("WindreamResultHandler wurde gestoppt!")
|
||||
'LoggerPMR.Warn("WindreamResultHandler has been stopped!")
|
||||
_database.Execute_non_Query("Update TBWMRH_PROFIL SET Running = 1 WHERE GUID = " & _PROFIL_ID)
|
||||
Logger.Info("WindreamResultHandler wurde gestoppt!")
|
||||
|
||||
Catch ex As Exception
|
||||
EventLog.WriteEntry("DDWMResultHandler", "Unexpected error in OnStop: " & ex.ToString(), EventLogEntryType.Error)
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
Public Sub RUN_THREAD(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs)
|
||||
Public Sub RUN_RESULTHANDLER(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs)
|
||||
Try
|
||||
MyLogger = New LogConfig(LogConfig.PathType.CustomPath, Path.Combine(My.Application.Info.DirectoryPath, "Log"))
|
||||
Logger = MyLogger.GetLogger()
|
||||
_database = New clsDatabase(MyLogger)
|
||||
|
||||
If My.Settings.SQLSERVER_CS_RH = "" Then
|
||||
Logger.Debug("RESULT HANDLER ConString not configured... No Run")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim notcompleted As Boolean = False
|
||||
'clsLogger.Init(My.Application.Info.DirectoryPath & "\Log", "_SERVICEResultHandler")
|
||||
Logger.Debug("RUN_THREAD WMResulthandler started..")
|
||||
@@ -148,9 +147,10 @@ Public Class DDWDResultHandler
|
||||
_windream = New clsWindream_allgemein(MyLogger)
|
||||
'windream initialisieren
|
||||
If _windream.Init() = True Then
|
||||
clsCURRENT.TEMP_FILES.Clear()
|
||||
Logger.Debug("windream vollumfänglich initialisiert!")
|
||||
'Zur sicherheit die DB nochmal initialiseren
|
||||
If _database.Init(My.Settings.SQLSERVER_CS, True) = True Then
|
||||
If _database.Init(My.Settings.SQLSERVER_CS_RH, True) = True Then
|
||||
Dim DT As DataTable = _database.Return_Datatable("select * from TBWMRH_KONFIGURATION where GUID = 1")
|
||||
If DT.Rows.Count = 1 Then
|
||||
clsCURRENT.DT_TBWMRH_KONFIGURATION = DT
|
||||
@@ -188,6 +188,17 @@ 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
|
||||
|
||||
End Try
|
||||
|
||||
_database.Execute_non_Query("UPDATE TBWMRH_KONFIGURATION SET LAST_TICK = GETDATE() WHERE GUID = 1")
|
||||
If oFirstRun = True Then
|
||||
oFirstRun = False
|
||||
@@ -275,8 +286,8 @@ Public Class DDWDResultHandler
|
||||
End Sub
|
||||
Public Function Thread_Abbrechen()
|
||||
Try
|
||||
If DDWDResultHandler.threadRunner.IsBusy Then
|
||||
DDWDResultHandler.threadRunner.CancelAsync()
|
||||
If DDWDResultHandler.threadResultHandler.IsBusy Then
|
||||
DDWDResultHandler.threadResultHandler.CancelAsync()
|
||||
End If
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
|
||||
@@ -58,21 +58,32 @@ Namespace My
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Configuration.DefaultSettingValueAttribute("Data Source=172.24.12.41\tests;Initial Catalog=DD_ECM_RENOLIT;Persist Security In"& _
|
||||
"fo=True;User ID=sa;Password=dd")> _
|
||||
Public ReadOnly Property SQLSERVER_CS() As String
|
||||
Public ReadOnly Property SQLSERVER_CS_RH() As String
|
||||
Get
|
||||
Return CType(Me("SQLSERVER_CS"),String)
|
||||
Return CType(Me("SQLSERVER_CS_RH"),String)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Configuration.DefaultSettingValueAttribute("Data Source=172.24.12.41\tests;Initial Catalog=DD_ECM_TEST;Persist Security Info="& _
|
||||
"True;User ID=sa;Password=dd")> _
|
||||
Global.System.Configuration.DefaultSettingValueAttribute("")> _
|
||||
Public ReadOnly Property SQLSERVER_CS_PMRefresh() As String
|
||||
Get
|
||||
Return CType(Me("SQLSERVER_CS_PMRefresh"),String)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
<Global.System.Configuration.UserScopedSettingAttribute(), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Configuration.DefaultSettingValueAttribute("")> _
|
||||
Public Property PMREFRESH_INTERVALL() As String
|
||||
Get
|
||||
Return CType(Me("PMREFRESH_INTERVALL"),String)
|
||||
End Get
|
||||
Set
|
||||
Me("PMREFRESH_INTERVALL") = value
|
||||
End Set
|
||||
End Property
|
||||
End Class
|
||||
End Namespace
|
||||
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="My" GeneratedClassName="MySettings" UseMySettingsClassName="true">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="SQLSERVER_CS" Type="System.String" Scope="Application">
|
||||
<Setting Name="SQLSERVER_CS_RH" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">Data Source=172.24.12.41\tests;Initial Catalog=DD_ECM_RENOLIT;Persist Security Info=True;User ID=sa;Password=dd</Value>
|
||||
</Setting>
|
||||
<Setting Name="SQLSERVER_CS_PMRefresh" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">Data Source=172.24.12.41\tests;Initial Catalog=DD_ECM_TEST;Persist Security Info=True;User ID=sa;Password=dd</Value>
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@@ -9,7 +9,7 @@ Public Class clsPMRefresh
|
||||
Private oConfigschedule
|
||||
Private oConfigIDXName_DocID
|
||||
Private oConfigIDXName_Created
|
||||
Private oConfigWMDrive
|
||||
'Private oConfigWMDrive
|
||||
Private oConfigLOGERRONLY As Boolean
|
||||
Sub New(theLogger As LogConfig)
|
||||
MyLogger = theLogger
|
||||
@@ -31,7 +31,7 @@ Public Class clsPMRefresh
|
||||
oConfigschedule = oDTPM_CONFIG.Rows(0).Item("SERVICE_SCHEDULE").ToString
|
||||
oConfigIDXName_DocID = oDTPM_CONFIG.Rows(0).Item("SERVICE_IDXNAME_DOCID").ToString
|
||||
oConfigIDXName_Created = oDTPM_CONFIG.Rows(0).Item("SERVICE_IDXNAME_CREATED").ToString
|
||||
oConfigWMDrive = oDTPM_CONFIG.Rows(0).Item("SERVICE_WMDRIVE_LETTER").ToString
|
||||
'oConfigWMDrive = oDTPM_CONFIG.Rows(0).Item("SERVICE_WMDRIVE_LETTER").ToString
|
||||
oConfigLOGERRONLY = oDTPM_CONFIG.Rows(0).Item("SERVICE_LOG_ERRORS_ONLY")
|
||||
Dim oSplit As String()
|
||||
oSplit = oConfigschedule.Split(";")
|
||||
@@ -125,7 +125,6 @@ Public Class clsPMRefresh
|
||||
'---------------------- für jedes Profil die Dateien überprüfen ------------------------
|
||||
For Each Profile_Row In oDTPROFILES.Rows
|
||||
oStep = "4a"
|
||||
Console.WriteLine(">> Dateien für Profil '" & Profile_Row.Item("NAME") & "' eintragen")
|
||||
Logger.Debug("Add info for profile '" & Profile_Row.Item("NAME") & "'")
|
||||
Dim oPROFILE_ID As Integer = Profile_Row.Item("GUID")
|
||||
WD_Search = Nothing
|
||||
@@ -139,6 +138,7 @@ Public Class clsPMRefresh
|
||||
oStep = "4d"
|
||||
Dim oDocCount As Integer = 0
|
||||
If IsNothing(oDTWM_Results) Then
|
||||
Logger.Warn("ATTENTION: oDTWM_Results is NOTHING")
|
||||
Continue For
|
||||
End If
|
||||
'Die aktuellen Files auf refreshed = 0 setzten
|
||||
@@ -151,7 +151,7 @@ Public Class clsPMRefresh
|
||||
Dim Profil_Docs(oDTWM_Results.Rows.Count - 1, 2) As String
|
||||
For Each oRow As DataRow In oDTWM_Results.Rows
|
||||
Dim oDOC_ID = oRow.Item(0)
|
||||
Dim oWMFilePath As String = oConfigWMDrive & ":" & oRow.Item(1)
|
||||
Dim oWMFilePath As String = oRow.Item(1)
|
||||
Profil_Docs(oDocCount, 0) = oRow.Item(0)
|
||||
Profil_Docs(oDocCount, 1) = oWMFilePath
|
||||
'------DMS Erstell-Datum holen --------
|
||||
@@ -215,6 +215,8 @@ Public Class clsPMRefresh
|
||||
Else
|
||||
Logger.Warn("ATTENTION: Refresh could not be executed " & oSQLCommand)
|
||||
End If
|
||||
Else
|
||||
Logger.Warn("ATTENTION: WM-Search is nothing.. ")
|
||||
End If
|
||||
Next
|
||||
oStep = "4i"
|
||||
|
||||
39
app/ResultHandler_Konfig/frmMain.Designer.vb
generated
39
app/ResultHandler_Konfig/frmMain.Designer.vb
generated
@@ -228,6 +228,9 @@ Partial Class frmMain
|
||||
Me.LOG_ERRORS_ONLYCheckBox = New System.Windows.Forms.CheckBox()
|
||||
Me.LAST_TICKTextBox = New System.Windows.Forms.TextBox()
|
||||
Me.TabPage4 = New System.Windows.Forms.TabPage()
|
||||
Me.Button6 = New System.Windows.Forms.Button()
|
||||
Me.txtAttachment = New System.Windows.Forms.TextBox()
|
||||
Me.Label6 = New System.Windows.Forms.Label()
|
||||
Me.Button5 = New System.Windows.Forms.Button()
|
||||
Me.AUTH_TYPEComboBox = New System.Windows.Forms.ComboBox()
|
||||
Me.TBDD_EMAIL_ACCOUNTBindingSource = New System.Windows.Forms.BindingSource(Me.components)
|
||||
@@ -2360,6 +2363,9 @@ Partial Class frmMain
|
||||
'
|
||||
'TabPage4
|
||||
'
|
||||
Me.TabPage4.Controls.Add(Me.Button6)
|
||||
Me.TabPage4.Controls.Add(Me.txtAttachment)
|
||||
Me.TabPage4.Controls.Add(Me.Label6)
|
||||
Me.TabPage4.Controls.Add(Me.Button5)
|
||||
Me.TabPage4.Controls.Add(AUTH_TYPELabel)
|
||||
Me.TabPage4.Controls.Add(Me.AUTH_TYPEComboBox)
|
||||
@@ -2401,14 +2407,40 @@ Partial Class frmMain
|
||||
Me.TabPage4.Text = "Email"
|
||||
Me.TabPage4.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button6
|
||||
'
|
||||
Me.Button6.Location = New System.Drawing.Point(872, 347)
|
||||
Me.Button6.Name = "Button6"
|
||||
Me.Button6.Size = New System.Drawing.Size(30, 23)
|
||||
Me.Button6.TabIndex = 38
|
||||
Me.Button6.Text = "..."
|
||||
Me.Button6.UseVisualStyleBackColor = True
|
||||
'
|
||||
'txtAttachment
|
||||
'
|
||||
Me.txtAttachment.Location = New System.Drawing.Point(395, 347)
|
||||
Me.txtAttachment.Name = "txtAttachment"
|
||||
Me.txtAttachment.Size = New System.Drawing.Size(471, 22)
|
||||
Me.txtAttachment.TabIndex = 37
|
||||
'
|
||||
'Label6
|
||||
'
|
||||
Me.Label6.AutoSize = True
|
||||
Me.Label6.Location = New System.Drawing.Point(392, 331)
|
||||
Me.Label6.Name = "Label6"
|
||||
Me.Label6.Size = New System.Drawing.Size(91, 13)
|
||||
Me.Label6.TabIndex = 36
|
||||
Me.Label6.Text = "Test Attachment:"
|
||||
'
|
||||
'Button5
|
||||
'
|
||||
Me.Button5.Location = New System.Drawing.Point(294, 381)
|
||||
Me.Button5.Name = "Button5"
|
||||
Me.Button5.Size = New System.Drawing.Size(75, 23)
|
||||
Me.Button5.Size = New System.Drawing.Size(95, 23)
|
||||
Me.Button5.TabIndex = 35
|
||||
Me.Button5.Text = "Button5"
|
||||
Me.Button5.Text = "Test Email(RAW)"
|
||||
Me.Button5.UseVisualStyleBackColor = True
|
||||
Me.Button5.Visible = False
|
||||
'
|
||||
'AUTH_TYPEComboBox
|
||||
'
|
||||
@@ -3034,4 +3066,7 @@ Partial Class frmMain
|
||||
Friend WithEvents EncryptToolStripMenuItem As ToolStripMenuItem
|
||||
Friend WithEvents Button5 As Button
|
||||
Friend WithEvents TextBox1 As TextBox
|
||||
Friend WithEvents txtAttachment As TextBox
|
||||
Friend WithEvents Label6 As Label
|
||||
Friend WithEvents Button6 As Button
|
||||
End Class
|
||||
|
||||
@@ -260,7 +260,7 @@
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAI
|
||||
DAAAAk1TRnQBSQFMAgEBAwEAAVABAwFQAQMBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
DAAAAk1TRnQBSQFMAgEBAwEAAXgBAwF4AQMBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||
|
||||
@@ -826,17 +826,44 @@ Public Class frmMain
|
||||
Dim PWPlain = wrapper.DecryptData(EMAIL_PWTextBox.Text)
|
||||
Dim sClient = New SmtpClient(EMAIL_SMTPTextBox.Text)
|
||||
Dim mymesssage As New MailMessage
|
||||
sClient.Port = 587
|
||||
sClient.Port = PORTTextBox.Text
|
||||
If AUTH_TYPEComboBox.Text = "SSL" Then
|
||||
sClient.EnableSsl = True
|
||||
Else
|
||||
sClient.EnableSsl = False
|
||||
End If
|
||||
|
||||
sClient.Credentials = New NetworkCredential(EMAIL_USERTextBox.Text, PWPlain)
|
||||
sClient.UseDefaultCredentials = False
|
||||
mymesssage.Body = "Test"
|
||||
mymesssage.From = New MailAddress(EMAIL_FROMTextBox.Text)
|
||||
mymesssage.Subject = "TestSubject"
|
||||
mymesssage.CC.Add(New MailAddress(txtTestmail.Text))
|
||||
sClient.Send(mymesssage)
|
||||
Catch ex As Exception
|
||||
|
||||
mymesssage.Body = $"This is the body (text will be replaced within profile)! <br> mailsmtp: {EMAIL_SMTPTextBox.Text} <br> mailport: {PORTTextBox.Text} <br> mailUser: {EMAIL_USERTextBox.Text} <br> mailPW: XXXX <br> AUTH_TYPE: {AUTH_TYPEComboBox.Text}"
|
||||
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(EMAIL_FROMTextBox.Text)
|
||||
mymesssage.Subject = "TestSubject from RAW Method"
|
||||
mymesssage.To.Add(New MailAddress(txtTestmail.Text))
|
||||
|
||||
If txtAttachment.Text <> String.Empty Then
|
||||
Dim oAttment As String = txtAttachment.Text.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!")
|
||||
Exit Sub
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
sClient.Send(mymesssage)
|
||||
MsgBox("Email has been sent!")
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
||||
End Try
|
||||
|
||||
|
||||
@@ -851,9 +878,9 @@ Public Class frmMain
|
||||
Dim PWPlain = wrapper.DecryptData(EMAIL_PWTextBox.Text)
|
||||
|
||||
|
||||
If _email.Testmail("Testmail DD Windream-ResultHandler", "This is the body (text will be replaced within profile)", txtTestmail.Text,
|
||||
EMAIL_FROMTextBox.Text, EMAIL_SMTPTextBox.Text, PORTTextBox.Text, EMAIL_USERTextBox.Text, PWPlain, AUTH_TYPEComboBox.Text, "") = True Then
|
||||
MsgBox("Email was send successfully.", MsgBoxStyle.Information)
|
||||
If _email.Email_Send("Testmail from GUI WMResultHandler", "This is the body (text will be replaced within profile)", txtTestmail.Text,
|
||||
EMAIL_FROMTextBox.Text, EMAIL_SMTPTextBox.Text, PORTTextBox.Text, EMAIL_USERTextBox.Text, PWPlain, AUTH_TYPEComboBox.Text, txtAttachment.Text, True) = True Then
|
||||
MsgBox("Email(s) has/have been sent successfully.", MsgBoxStyle.Information)
|
||||
Else
|
||||
MsgBox("Could not send the testmail. Please check the log.", MsgBoxStyle.Exclamation)
|
||||
End If
|
||||
@@ -962,4 +989,18 @@ Public Class frmMain
|
||||
Private Sub LOG_ERRORS_ONLYCheckBox_CheckedChanged(sender As Object, e As EventArgs) Handles LOG_ERRORS_ONLYCheckBox.CheckedChanged
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
|
||||
Dim oFD As OpenFileDialog = New OpenFileDialog()
|
||||
|
||||
oFD.Title = "Get a test-attachment:"
|
||||
'oFD.InitialDirectory = "C:\"
|
||||
oFD.Filter = "All files (*.*)|*.*|All files (*.*)|*.*"
|
||||
oFD.FilterIndex = 2
|
||||
oFD.RestoreDirectory = True
|
||||
|
||||
If oFD.ShowDialog() = DialogResult.OK Then
|
||||
txtAttachment.Text = oFD.FileName
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user