This commit is contained in:
Digital Data - Marlon Schreiber
2019-03-22 15:48:41 +01:00
parent fb92a0fd1c
commit 676e9d40b8
17 changed files with 547 additions and 184 deletions

View File

@@ -2,4 +2,6 @@
Public CURRENToWMSession_Created As Date = Now Public CURRENToWMSession_Created As Date = Now
Public CURRENToWMConnect As Object Public CURRENToWMConnect As Object
Public CURRENToWMSession As Object Public CURRENToWMSession As Object
Public CURRENT_WMDriveLetter As String = "W"
End Module End Module

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben: ' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.0.0")> <Assembly: AssemblyVersion("2.0.0.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")> <Assembly: AssemblyFileVersion("1.0.0.0")>

View File

@@ -8,6 +8,6 @@
Public Shared DT_TBDD_EMAIL As DataTable = Nothing Public Shared DT_TBDD_EMAIL As DataTable = Nothing
Public Shared CONCATTED_FILE As String = "" Public Shared CONCATTED_FILE As String = ""
Public Shared _PROFIL_ID, _profGUID As Integer Public Shared _PROFIL_ID, _profGUID As Integer
Public Shared TEMP_FILES As List(Of String) = New List(Of String)
Public Shared _proflastRun As Date Public Shared _proflastRun As Date
End Class End Class

View File

@@ -54,6 +54,7 @@ Public Class clsDatabase
Oracle_Command.AddToStatementCache = True Oracle_Command.AddToStatementCache = True
Catch ex As Exception Catch ex As Exception
Logger.Warn($"PLSQL-Command: [{plsqlcommand}]")
Logger.Error(ex) Logger.Error(ex)
'clsLogger.Add(ex.Message, True, "clsDatatabase.plsqlcommandDefine") 'clsLogger.Add(ex.Message, True, "clsDatatabase.plsqlcommandDefine")
Oracle_Conn.Close() Oracle_Conn.Close()
@@ -71,6 +72,7 @@ Public Class clsDatabase
Return True Return True
Catch ex As Exception Catch ex As Exception
Logger.Warn($"PLSQL-Command: [{plsqlcommand}]")
Logger.Error(ex) Logger.Error(ex)
'clsLogger.Add(ex.Message & vbNewLine & "Execute Command => (" & plsqlcommand & ")", True, "clsDatatabase.ExecuteonOracleDb") 'clsLogger.Add(ex.Message & vbNewLine & "Execute Command => (" & plsqlcommand & ")", True, "clsDatatabase.ExecuteonOracleDb")
Oracle_Conn.Close() Oracle_Conn.Close()
@@ -88,6 +90,7 @@ Public Class clsDatabase
Catch ex As Exception Catch ex As Exception
Logger.Warn($"PLSQL-Command: [{plsqlcommand}]")
Logger.Error(ex) Logger.Error(ex)
'clsLogger.Add("Unexpected Error in ExecuteonOracleDb: " & ex.Message & vbNewLine & "SQL: " & plsqlcommand, True, "clsDatatabase.ExecuteonOracleDb") '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 ' an dieser Stelle sollte jeder unvorhergesehene Fehler der Funktion abgefangen werden

View File

@@ -4,6 +4,7 @@ Imports System.Net
Imports Newtonsoft.Json Imports Newtonsoft.Json
Imports System.Text Imports System.Text
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports System.Text.RegularExpressions
Public Class clsDateiverarbeitung Public Class clsDateiverarbeitung
Dim Logger As Logger Dim Logger As Logger
@@ -122,64 +123,134 @@ Public Class clsDateiverarbeitung
Return False Return False
End Try End Try
End Function End Function
'Kopiert die übergebene Datei in den Zielpfad Private Function CleanInput(strIn As String) As String
Public Function Export_File(WDDatei As WMObject, Zielpfad As String) ' Replace invalid characters with empty strings.
Try Try
If Not Zielpfad.EndsWith("\") Then Return Regex.Replace(strIn, "[^\w\.@-]", "")
Zielpfad = Zielpfad & "\" ' 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 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 Try
If Not WDDatei.aLocked Then Logger.Info("Working on WMFile: " & oWMFile.aName)
WDDatei.lock()
End If
Catch ex As Exception Catch ex As Exception
Logger.Error(ex) 'clsLogger.AddError("Unvorhergesehener Fehler beim Lock-Vorgang: " & ex.Message, "clsDV.Export_File") Logger.Error(ex)
Return False Return False
End Try 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 ### '### VERSIONIERUNG ###
Dim version As Integer = 2 Dim version As Integer = 2
'Dim Stammname As String = System.IO.Path.GetFileNameWithoutExtension(Quelle) 'Dim Stammname As String = System.IO.Path.GetFileNameWithoutExtension(Quelle)
Dim Filename = WDDatei.aName.Substring(0, WDDatei.aName.LastIndexOf(".")) Dim oFilename = oWMFile.aName.Substring(0, oWMFile.aName.LastIndexOf("."))
Dim Extension = WDDatei.aName.Substring(WDDatei.aName.LastIndexOf(".")) Dim oExtension = oWMFile.aName.Substring(oWMFile.aName.LastIndexOf("."))
Dim tempFilename As String = Zielpfad & Filename & Extension Dim oTempFilename As String = MyExportpath & oFilename & oExtension
'Überprüfen ob File existiert 'Überprüfen ob File existiert
Do While IO.File.Exists(tempFilename) = True Do While IO.File.Exists(oTempFilename) = True
tempFilename = Zielpfad & Filename & "_" & version & Extension oTempFilename = MyExportpath & oFilename & "_" & version & oExtension
version = version + 1 version = version + 1
Loop Loop
Logger.Debug("Zieldateiname: " & tempFilename) Logger.Debug("Exportfilename is: " & oTempFilename)
' den Dateiinhalt der neuen Datei zuweisen ' den Dateiinhalt der neuen Datei zuweisen
ExportFileIO.bstrOriginalFileName = oTempFilename
ExportFileIO.aWMStream = oWMStream ExportFileIO.aWMStream = oWMStream
ExportFileIO.bstrOriginalFileName = tempFilename
'Das eigentliche kopieren 'Das eigentliche kopieren
ExportFileIO.ExportOriginal(True) ExportFileIO.ExportOriginal(True)
' close the windream file stream ' close the windream file stream
oWMStream.Close() oWMStream.Close()
WDDatei.Save() If File.Exists(oTempFilename) Then
WDDatei.unlock() clsCURRENT.EXPORTED_FILENAME = oTempFilename
clsCURRENT.EXPORTED_FILENAME = tempFilename Logger.Info($"File Export to HDD [{clsCURRENT.EXPORTED_FILENAME}]was successfull (File.Exists = True)!")
Logger.Info("Datei erfolgreich nach '" & tempFilename & "' verschoben.") aktfile_Exportresult = clsCURRENT.EXPORTED_FILENAME
aktfile_Exportresult = tempFilename clsCURRENT.TEMP_FILES.Add(clsCURRENT.EXPORTED_FILENAME)
Return True Logger.Debug("FileInfo Added to variables...")
Catch ex As Exception Return True
'bei einem Fehler einen Eintrag in der Logdatei machen Else
Logger.Error(ex) 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 Return False
End Try End Try
End Function 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) Public Function Rename_File(WMFile As WMObject, konvention As String)
Try Try
Logger.Debug("Konvention: '" & konvention & "'") Logger.Debug("Konvention: '" & konvention & "'")
@@ -416,6 +487,9 @@ Public Class clsDateiverarbeitung
Dim result = REGEX_REPLACE(WMFile, OracleCommandRAW) Dim result = REGEX_REPLACE(WMFile, OracleCommandRAW)
If result = Nothing Then If result = Nothing Then
Return False Return False
ElseIf result.ToString.Contains("[%") Then
Logger.Warn($"Replace Function OracleCommandRAW did not match all patterns: {result.ToString}")
Return False
End If End If
@@ -436,6 +510,9 @@ Public Class clsDateiverarbeitung
Dim result = REGEX_REPLACE(WMFile, SQLCommandRAW) Dim result = REGEX_REPLACE(WMFile, SQLCommandRAW)
If result = Nothing Then If result = Nothing Then
Return False Return False
ElseIf result.ToString.Contains("[%") Then
Logger.Warn($"Replace Function SQLCommandRAW did not match all patterns: {result.ToString}")
Return False
End If End If
@@ -611,7 +688,7 @@ Public Class clsDateiverarbeitung
Logger.Debug("REGEX_String after vector-for-each (" & i & ") " & _STRING) Logger.Debug("REGEX_String after vector-for-each (" & i & ") " & _STRING)
End If End If
Else 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") _STRING = _STRING.Replace(reg_element.Value, "0")
End If End If
End If End If

View File

@@ -4,6 +4,9 @@ Imports Independentsoft.Email
Imports Independentsoft.Email.Smtp Imports Independentsoft.Email.Smtp
Imports Independentsoft.Email.Mime Imports Independentsoft.Email.Mime
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports System.Net.Mail
Imports System.Net
Imports System.Net.Mime
Public Class clsEmail Public Class clsEmail
Dim Logger As DigitalData.Modules.Logging.Logger 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, mailfrom As String, mailsmtp As String, mailport As Integer, mailUser As String, mailPW As String,
AUTH_TYPE As String, Optional attment As String = "") AUTH_TYPE As String, Optional attment As String = "")
Try Try
Dim message As New Message() Dim oReceipiants As String()
message.From = New Mailbox(mailUser, mailUser) If mailto.Contains(";") Then
message.To.Add(New Mailbox(mailto)) oReceipiants = mailto.Split(";")
message.Subject = mailSubject Else
message.Body = mailBody ReDim Preserve oReceipiants(0)
message.ContentType = New ContentType("text", "plain", "iso-8859-1") oReceipiants(0) = mailto
message.ContentTransferEncoding = ContentTransferEncoding.QuotedPrintable 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) sClient.Credentials = New NetworkCredential(mailUser, mailPW)
client.EnableSsl = True sClient.UseDefaultCredentials = False
client.ValidateRemoteCertificate = 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 Return True
Catch ex As Exception Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical) MsgBox(ex.Message, MsgBoxStyle.Critical)
Return False
End Try End Try
End Function 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, 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, mailfrom As String, mailsmtp As String, mailport As Integer, mailUser As String, mailPW As String,
AUTH_TYPE As String, Optional attment As String = "") AUTH_TYPE As String, Optional attment As String = "")
@@ -64,28 +172,31 @@ Public Class clsEmail
message.Subject = mailSubject message.Subject = mailSubject
Logger.Debug($"Message created..") Logger.Debug($"Message created..")
Dim textBodyPart As New BodyPart() 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.ContentTransferEncoding = ContentTransferEncoding.QuotedPrintable
textBodyPart.Body = mailBody textBodyPart.Body = mailBody
message.BodyParts.Add(textBodyPart) message.BodyParts.Add(textBodyPart)
attment = attment.Replace("W:\", "\\windream\objects\")
If attment <> String.Empty Then If attment <> String.Empty Then
If System.IO.File.Exists(attment) 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 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 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 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 End If
message.BodyParts.Add(attachment1) message.BodyParts.Add(attachment1)
Else 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
End If End If
Dim client As SmtpClient Dim client As Smtp.SmtpClient
Try Try
client = New SmtpClient(mailsmtp, mailport) client = New Smtp.SmtpClient(mailsmtp, mailport)
Catch ex As Exception Catch ex As Exception
Logger.Warn("clsEmail.Create Client: " & ex.Message) Logger.Warn("clsEmail.Create Client: " & ex.Message)
_error = True _error = True

View File

@@ -44,7 +44,7 @@ Public Class clsJob_Work
Logger.Warn("PWPlain is Nothing - Could not decrypt passwort 44") Logger.Warn("PWPlain is Nothing - Could not decrypt passwort 44")
Return False Return False
End If 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 Return True
Else Else
Logger.Warn("Email_Send_Independentsoft was not successfull!") Logger.Warn("Email_Send_Independentsoft was not successfull!")

View File

@@ -128,6 +128,7 @@ Public Class clsProfil
Logger.Info($"Working on profile '{_Profilname}'") Logger.Info($"Working on profile '{_Profilname}'")
clsCURRENT.DT_TBDD_EMAIL = _database.Return_Datatable("SELECT * FROM TBDD_EMAIL_ACCOUNT WHERE ACTIVE = 1") clsCURRENT.DT_TBDD_EMAIL = _database.Return_Datatable("SELECT * FROM TBDD_EMAIL_ACCOUNT WHERE ACTIVE = 1")
clsCURRENT.PROFILE_HandledFiles = Nothing clsCURRENT.PROFILE_HandledFiles = Nothing
clsCURRENT.EXPORTED_FILENAME = ""
Logger.Debug("Start RUN of profile '" & _Profilname & "'") Logger.Debug("Start RUN of profile '" & _Profilname & "'")
'den Durchlaufszeitpunkt speichern 'den Durchlaufszeitpunkt speichern
If File.Exists(_profwdSuche) = False Then If File.Exists(_profwdSuche) = False Then
@@ -160,7 +161,11 @@ Public Class clsProfil
Dim FileJobSuccessful As Boolean = False Dim FileJobSuccessful As Boolean = False
Dim CountExportedDoc As Integer = 0 Dim CountExportedDoc As Integer = 0
clsCURRENT.PROFILE_HandledFiles = Nothing clsCURRENT.PROFILE_HandledFiles = Nothing
Dim oFileRunNo As String
Dim oCountDocs As Integer = 0
For Each WMdok As WMObject In windreamSucheErgebnisse 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 For Each DR_PR_JB As DataRow In DT_PROFIL_JOB.Rows
Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper
Case "Create Mail Attachment".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 If Not IsNothing(clsCURRENT.DT_TBDD_EMAIL) And clsCURRENT.DT_TBDD_EMAIL.Rows.Count >= 1 Then
Dim oAttachment = clsCURRENT.WDLAUFWERK & ":" & WMdok.aPath 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 MAILFROM As String = ""
Dim MAILSMTP As String = "" Dim MAILSMTP As String = ""
@@ -201,16 +215,10 @@ Public Class clsProfil
Dim PWPlain = wrapper.DecryptData(MAIL_USER_PW) Dim PWPlain = wrapper.DecryptData(MAIL_USER_PW)
If Not IsNothing(PWPlain) Then If Not IsNothing(PWPlain) Then
If PWPlain <> "" Then MAIL_USER_PW = PWPlain
MAIL_USER_PW = PWPlain
Else
Logger.Warn("PWPlain is string.empty - Could not decrypt passwort181")
Return False
End If
Else Else
Logger.Warn("PWPlain is string.empty - Could not decrypt passwort188") Logger.Warn("PWPlain is Nothing - Could not decrypt passwort188")
Return False Return False
End If End If
@@ -222,32 +230,34 @@ Public Class clsProfil
Email_Betreff = _dateiverarbeitung.REGEX_REPLACE(WMdok, Email_Betreff) Email_Betreff = _dateiverarbeitung.REGEX_REPLACE(WMdok, Email_Betreff)
Email_Body = _dateiverarbeitung.REGEX_REPLACE(WMdok, Email_Body) 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 FileJobSuccessful = True
Else Else
Logger.Warn("Email_Send_Independentsoft was not successfull!") Logger.Warn($"{oFileRunNo} Email_Send_Independentsoft 1 was not successfull!")
FileJobSuccessful = False
End If End If
Else 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 Return False
End If End If
Case "Export HDD".ToUpper 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 'Für jedes Dokument in der Windream-Ergebnisliste
'For Each dok As WMObject In windreamSucheErgebnisse 'For Each dok As WMObject In windreamSucheErgebnisse
' aktuelles Dokument zum Export bereitstellen ' aktuelles Dokument zum Export bereitstellen
clsCURRENT.EXPORTED_FILENAME = "" 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) ReDim Preserve clsCURRENT.PROFILE_HandledFiles(CountExportedDoc)
clsCURRENT.PROFILE_HandledFiles(CountExportedDoc) = clsCURRENT.EXPORTED_FILENAME clsCURRENT.PROFILE_HandledFiles(CountExportedDoc) = clsCURRENT.EXPORTED_FILENAME
CountExportedDoc += 1 CountExportedDoc += 1
FileJobSuccessful = True FileJobSuccessful = True
Logger.Info($"{oFileRunNo} Export HDD completed!")
End If End If
'Next 'Next
Case "BNS json Download".ToUpper 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")) FileJobSuccessful = _dateiverarbeitung.BNSjsonDownload(WMdok, DR_PR_JB.Item("STRING1"), DR_PR_JB.Item("STRING2"))
'Case "Send to printer".ToUpper 'Case "Send to printer".ToUpper
' Logger.Info("JobType: Send to printer") ' Logger.Info("JobType: Send to printer")
@@ -305,9 +315,26 @@ Public Class clsProfil
'Für jeden File-Job 'Für jeden File-Job
For Each DR_PR_FILE_JOB As DataRow In DT_PROFIL_FILE_JOB.Rows For Each DR_PR_FILE_JOB As DataRow In DT_PROFIL_FILE_JOB.Rows
If FileJobSuccessful = False Then If FileJobSuccessful = False Then
Logger.Info("AUSSTIEG FOR SCHLEIFE cause FileJobSuccessful = False...") Logger.Info($"{oFileRunNo} AUSSTIEG FOR SCHLEIFE cause FileJobSuccessful = False...")
Exit For Exit For
End If 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 Select Case DR_PR_FILE_JOB.Item("TYP").ToString.ToLower
Case "Set Index".ToLower Case "Set Index".ToLower
Try Try
@@ -319,17 +346,17 @@ Public Class clsProfil
idxvalue = idxvalue.Replace("[%DATETIME]", Now.ToString) idxvalue = idxvalue.Replace("[%DATETIME]", Now.ToString)
End If End If
idxvalue = _dateiverarbeitung.REGEX_REPLACE(WMdok, idxvalue) 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 Dim arrIndex() As String
ReDim Preserve arrIndex(0) ReDim Preserve arrIndex(0)
arrIndex(0) = idxName arrIndex(0) = idxName
Logger.Debug("...nach arrIndex") Logger.Debug($"{oFileRunNo} ...nach arrIndex")
Dim arrValue() As String Dim arrValue() As String
Dim aktvalue As Object Dim aktvalue As Object
aktvalue = WMdok.GetVariableValue(idxName) aktvalue = WMdok.GetVariableValue(idxName)
Logger.Debug("...nach aktValue zuweisen..") Logger.Debug($"{oFileRunNo} ...nach aktValue zuweisen..")
Dim wmtype = clsWindream_allgemein.GetTypeOfIndexAsIntByName(idxName) Dim wmtype = clsWindream_allgemein.GetTypeOfIndexAsIntByName(idxName)
Dim is_vektor As Boolean = False Dim is_vektor As Boolean = False
Select Case wmtype Select Case wmtype
@@ -372,9 +399,10 @@ Public Class clsProfil
' 07.01.2019: Weitere Jobs bei Fehler in RunIndexing überspringen ' 07.01.2019: Weitere Jobs bei Fehler in RunIndexing überspringen
If oErrorOccurred = True Then If oErrorOccurred = True Then
FileJobSuccessful = False FileJobSuccessful = False
End If End If
Else Else
Logger.Warn("arrValue is nothing - keine Indexierung") Logger.Warn($"{oFileRunNo} arrValue is nothing - keine Indexierung")
End If End If
Catch ex As Exception Catch ex As Exception
@@ -382,14 +410,14 @@ Public Class clsProfil
'clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(SetIndex)") 'clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(SetIndex)")
End Try End Try
Case "Rename File with windream Index".ToLower 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) _dateiverarbeitung.Rename_File(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString)
Case "Rename File with WMVector (only one)".ToLower 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) _dateiverarbeitung.Rename_File_Vektor(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString)
Case "Execute Oracle Command".ToLower Case "Execute Oracle Command".ToLower
Try Try
Logger.Debug("Execute Oracle Command.......") Logger.Debug($"{oFileRunNo} Execute Oracle Command.......")
Dim oracleconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString Dim oracleconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString
Dim oracleCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString Dim oracleCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString
FileJobSuccessful = _dateiverarbeitung.RUN_ORACLE_COMMAND(WMdok, oracleconnectionstring, oracleCommandRAW) FileJobSuccessful = _dateiverarbeitung.RUN_ORACLE_COMMAND(WMdok, oracleconnectionstring, oracleCommandRAW)
@@ -401,7 +429,7 @@ Public Class clsProfil
Try Try
Dim MSSQLconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString Dim MSSQLconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString
Dim MSSQLCommandRAW = DR_PR_FILE_JOB.Item("STRING2").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) FileJobSuccessful = _dateiverarbeitung.RUN_MSSQL_COMMAND(WMdok, MSSQLconnectionstring, MSSQLCommandRAW)
Catch ex As Exception Catch ex As Exception
Logger.Error(ex) Logger.Error(ex)
@@ -426,8 +454,8 @@ Public Class clsProfil
Logger.Debug("pdftk location: " & pdftk) Logger.Debug("pdftk location: " & pdftk)
clsCURRENT.CONCATTED_FILE = DR_PR_JB.Item("STRING1") clsCURRENT.CONCATTED_FILE = DR_PR_JB.Item("STRING1")
Logger.Debug("CONCATTED_FILE location: " & clsCURRENT.CONCATTED_FILE) Logger.Debug("CONCATTED_FILE location: " & clsCURRENT.CONCATTED_FILE)
Dim deleteJaNein = DR_PR_JB.Item("STRING2").ToString.ToUpper Dim oDeleteResultFile = DR_PR_JB.Item("STRING2").ToString.ToUpper
Logger.Debug("deleteJaNein: " & deleteJaNein.ToString) Logger.Debug("deleteJaNein: " & oDeleteResultFile.ToString)
If File.Exists(pdftk) Then If File.Exists(pdftk) Then
If File.Exists(clsCURRENT.CONCATTED_FILE) Then If File.Exists(clsCURRENT.CONCATTED_FILE) Then
Try Try
@@ -496,10 +524,11 @@ Public Class clsProfil
Loop Loop
sw.Stop() sw.Stop()
If deleteJaNein = "JA" Then If oDeleteResultFile = "JA" Then
For Each str As String In clsCURRENT.PROFILE_HandledFiles For Each str As String In clsCURRENT.PROFILE_HandledFiles
Try Try
File.Delete(str) File.Delete(str)
Logger.Debug($"Deleted file [{str}]!")
Catch ex As Exception Catch ex As Exception
Logger.Error(ex) Logger.Error(ex)
End Try End Try
@@ -562,10 +591,11 @@ Public Class clsProfil
Return False Return False
End If 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 FileJobSuccessful = True
Else Else
Logger.Warn("Email_Send_Independentsoft was not successfull!") Logger.Warn("Email_Send_Independentsoft 2 was not successfull!")
FileJobSuccessful = False
End If End If
@@ -581,10 +611,10 @@ Public Class clsProfil
Case "Send to printer".ToUpper Case "Send to printer".ToUpper
Logger.Info("Working on CASE Send to printer.... ") Logger.Info("Working on CASE Send to printer.... ")
Dim printername = DR_PR_JB.Item("STRING1") 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 Try
Dim myproc As Process = New Process() Dim myproc As Process = New Process()
myproc.StartInfo.FileName = """" & str & """" myproc.StartInfo.FileName = """" & oFileString & """"
myproc.StartInfo.Verb = "printto" myproc.StartInfo.Verb = "printto"
myproc.StartInfo.Arguments = printername myproc.StartInfo.Arguments = printername
myproc.StartInfo.UseShellExecute = True myproc.StartInfo.UseShellExecute = True
@@ -605,9 +635,10 @@ Public Class clsProfil
FileJobSuccessful = True FileJobSuccessful = True
sw.Stop() sw.Stop()
' myproc.Kill() ' myproc.Kill()
File.Delete(str) File.Delete(oFileString)
Logger.Debug($"Deleted oFileString [{oFileString}]!")
Catch ex As Exception Catch ex As Exception
Logger.Warn("Could not print (printto) file: " & str) Logger.Warn("Could not print (printto) file: " & oFileString)
Logger.Error(ex) Logger.Error(ex)
End Try End Try
Next Next

View File

@@ -43,7 +43,7 @@ Public Class clsWindream_allgemein
' wenn ein Fehler bei der Initialisierung auftrat ' wenn ein Fehler bei der Initialisierung auftrat
If Not Init() Then If Not Init() Then
' Nachricht ausgeben ' 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" ' das Programm "abschießen"
Process.GetCurrentProcess.Kill() Process.GetCurrentProcess.Kill()
End If End If
@@ -464,7 +464,7 @@ Public Class clsWindream_allgemein
Return oSearch.execute Return oSearch.execute
Catch ex As Exception Catch ex As Exception
Logger.Error(ex) Logger.Error(ex)
Logger.Warn($"WM-SEARCH ({wdfLocation})") Logger.Warn($"WM-SEARCH in Exception ({wdfLocation})")
Return Nothing Return Nothing
End Try End Try
@@ -552,10 +552,17 @@ Public Class clsWindream_allgemein
If WMObjects.Count > 0 Then If WMObjects.Count > 0 Then
For Each dok As WMObject In WMObjects For Each dok As WMObject In WMObjects
Dim oPath As String = dok.aPath
Dim oDOC_ID = dok.GetVariableValue(NameIndexDocID) Dim oDOC_ID = dok.GetVariableValue(NameIndexDocID)
Dim oCreated = dok.GetVariableValue(NameIndexCreated) 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) dtresult.Rows.Add(oDOC_ID, oPath, oCreated)
Next Next
dtresult.AcceptChanges() dtresult.AcceptChanges()
@@ -563,11 +570,33 @@ Public Class clsWindream_allgemein
Return dtresult Return dtresult
Catch ex As Exception Catch ex As Exception
Logger.Error(ex) Logger.Error(ex)
Logger.Warn($"WM-SEARCH ({wdfLocation})") Logger.Warn($"WM-SEARCH from GetSearchDocumentsDT ({wdfLocation})")
Return dtresult Return dtresult
End Try End Try
End Function 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 Region
End Class End Class

View File

@@ -6,6 +6,9 @@
</sectionGroup> </sectionGroup>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> <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 --> <!-- 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> </configSections>
<connectionStrings /> <connectionStrings />
<startup> <startup>
@@ -13,11 +16,11 @@
</startup> </startup>
<applicationSettings> <applicationSettings>
<DDWDResultHandler.My.MySettings> <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> <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>
<setting name="SQLSERVER_CS_PMRefresh" serializeAs="String"> <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> </setting>
</DDWDResultHandler.My.MySettings> </DDWDResultHandler.My.MySettings>
</applicationSettings> </applicationSettings>
@@ -40,4 +43,11 @@
</dependentAssembly> </dependentAssembly>
</assemblyBinding> </assemblyBinding>
</runtime> </runtime>
<userSettings>
<DDWDResultHandler.My.MySettings>
<setting name="PMREFRESH_INTERVALL" serializeAs="String">
<value />
</setting>
</DDWDResultHandler.My.MySettings>
</userSettings>
</configuration> </configuration>

View File

@@ -9,7 +9,7 @@ Public Class DDWDResultHandler
Private _database As DD_WMResulthandler.clsDatabase Private _database As DD_WMResulthandler.clsDatabase
Private _profil As clsProfil Private _profil As clsProfil
Public Shared threadRunner As BackgroundWorker Public Shared threadResultHandler As BackgroundWorker
Public Shared threadPMRefresh As BackgroundWorker Public Shared threadPMRefresh As BackgroundWorker
Private Logger As Logger Private Logger As Logger
@@ -33,14 +33,6 @@ Public Class DDWDResultHandler
' Code zum Starten des Dienstes hier einfügen. Diese Methode sollte Vorgänge ' Code zum Starten des Dienstes hier einfügen. Diese Methode sollte Vorgänge
' ausführen, damit der Dienst gestartet werden kann. ' ausführen, damit der Dienst gestartet werden kann.
'EventLog1.WriteEntry("Dienst 'DD windream Result Handler' gestartet") '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
Try Try
MyLogger = New LogConfig(LogConfig.PathType.CustomPath, Path.Combine(My.Application.Info.DirectoryPath, "Log")) MyLogger = New LogConfig(LogConfig.PathType.CustomPath, Path.Combine(My.Application.Info.DirectoryPath, "Log"))
@@ -52,59 +44,62 @@ Public Class DDWDResultHandler
End Try End Try
If My.Settings.SQLSERVER_CS = String.Empty Then 'If _database.Init(My.Settings.SQLSERVER_CS_RH, True) = False Then
Logger.Warn("Achtung: Es wurde noch kein Datenbank-ConnectionString hinterlegt.") ' 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
Else Else
If _database.Init(My.Settings.SQLSERVER_CS, True) = False Then MyLogger.Debug = False
Logger.Warn("Achtung: Es konnte keine Verbindung zur Datenbank '" & My.Settings.SQLSERVER_CS & "' hergestellt werden!") End If
Else oFirstRun = True
' '#Thread für Durchlauf generieren
DDWDResultHandler.threadResultHandler = New BackgroundWorker()
DDWDResultHandler.threadResultHandler.WorkerReportsProgress = True
DDWDResultHandler.threadResultHandler.WorkerSupportsCancellation = True
AddHandler threadResultHandler.DoWork, AddressOf RUN_RESULTHANDLER
AddHandler threadResultHandler.RunWorkerCompleted, AddressOf Thread_Completed
If clsCURRENT.LOG_ERRORS_ONLY = False Then ' '### Den Timer generieren
MyLogger.Debug = True Dim Timer_Durchlauf As New System.Timers.Timer()
Else 'Das Event hinterlegen welches bei "Tick" ausgelöst wird
MyLogger.Debug = False AddHandler Timer_Durchlauf.Elapsed, AddressOf Thread_Run
End If ' Set the Interval
oFirstRun = True Timer_Durchlauf.Interval = 60000
' '#Thread für Durchlauf generieren Timer_Durchlauf.Enabled = True
DDWDResultHandler.threadRunner = New BackgroundWorker() Logger.Debug("Timer gestartet")
DDWDResultHandler.threadRunner.WorkerReportsProgress = True ' Und den Durchlauf das erste Mal starten
DDWDResultHandler.threadRunner.WorkerSupportsCancellation = True
AddHandler threadRunner.DoWork, AddressOf RUN_THREAD
AddHandler threadRunner.RunWorkerCompleted, AddressOf Thread_Completed
' '### Den Timer generieren
Dim Timer_Durchlauf As New System.Timers.Timer()
'Das Event hinterlegen welches bei "Tick" ausgelöst wird
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
DDWDResultHandler.threadPMRefresh = New BackgroundWorker() DDWDResultHandler.threadPMRefresh = New BackgroundWorker()
DDWDResultHandler.threadPMRefresh.WorkerReportsProgress = True DDWDResultHandler.threadPMRefresh.WorkerReportsProgress = True
DDWDResultHandler.threadPMRefresh.WorkerSupportsCancellation = True DDWDResultHandler.threadPMRefresh.WorkerSupportsCancellation = True
AddHandler threadPMRefresh.DoWork, AddressOf RUNPMRefresh AddHandler threadPMRefresh.DoWork, AddressOf RUNPMRefresh
AddHandler threadPMRefresh.RunWorkerCompleted, AddressOf ThreadPMRefresh_Completed AddHandler threadPMRefresh.RunWorkerCompleted, AddressOf ThreadPMRefresh_Completed
' '### Den Timer generieren ' '### Den Timer generieren
Dim TimerPMRefresh As New System.Timers.Timer() Dim TimerPMRefresh As New System.Timers.Timer()
'Das Event hinterlegen welches bei "Tick" ausgelöst wird 'Das Event hinterlegen welches bei "Tick" ausgelöst wird
AddHandler TimerPMRefresh.Elapsed, AddressOf ThreadPMRefreshRun AddHandler TimerPMRefresh.Elapsed, AddressOf ThreadPMRefreshRun
' Set the Interval
' Und den Durchlauf das erste Mal starten TimerPMRefresh.Interval = 120000 '2 minutes
threadRunner.RunWorkerAsync() 'ClassLogger.Add("Timer - Intervall: " & clsSQLITE.konf_intervall & " Minuten", False)
' Set the Interval TimerPMRefresh.Enabled = True
TimerPMRefresh.Interval = 120000 '2 minutes 'End If
'ClassLogger.Add("Timer - Intervall: " & clsSQLITE.konf_intervall & " Minuten", False) If My.Settings.SQLSERVER_CS_RH = "" And My.Settings.SQLSERVER_CS_PMRefresh <> "" Then
TimerPMRefresh.Enabled = True 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
End If End If
Catch ex As Exception Catch ex As Exception
EventLog.WriteEntry("DDWMResultHandler", "Unexpected error in OnStart: " & ex.ToString(), EventLogEntryType.Error) EventLog.WriteEntry("DDWMResultHandler", "Unexpected error in OnStart: " & ex.ToString(), EventLogEntryType.Error)
Logger.Error(ex) Logger.Error(ex)
@@ -112,8 +107,8 @@ Public Class DDWDResultHandler
End Sub End Sub
Public Sub Thread_Run() Public Sub Thread_Run()
If Not threadRunner.IsBusy Then If Not threadResultHandler.IsBusy Then
threadRunner.RunWorkerAsync() threadResultHandler.RunWorkerAsync()
End If End If
End Sub End Sub
Public Sub ThreadPMRefreshRun() Public Sub ThreadPMRefreshRun()
@@ -127,20 +122,24 @@ Public Class DDWDResultHandler
Protected Overrides Sub OnStop() Protected Overrides Sub OnStop()
Try Try
' Hier Code zum Ausführen erforderlicher Löschvorgänge zum Beenden des Dienstes einfügen. ' Hier Code zum Ausführen erforderlicher Löschvorgänge zum Beenden des Dienstes einfügen.
Logger.Warn("WindreamResultHandler wurde gestoppt!") Logger.Info("WindreamResultHandler wurde gestoppt!")
'LoggerPMR.Warn("WindreamResultHandler has been stopped!")
_database.Execute_non_Query("Update TBWMRH_PROFIL SET Running = 1 WHERE GUID = " & _PROFIL_ID)
Catch ex As Exception Catch ex As Exception
EventLog.WriteEntry("DDWMResultHandler", "Unexpected error in OnStop: " & ex.ToString(), EventLogEntryType.Error) EventLog.WriteEntry("DDWMResultHandler", "Unexpected error in OnStop: " & ex.ToString(), EventLogEntryType.Error)
End Try End Try
End Sub 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 Try
MyLogger = New LogConfig(LogConfig.PathType.CustomPath, Path.Combine(My.Application.Info.DirectoryPath, "Log")) MyLogger = New LogConfig(LogConfig.PathType.CustomPath, Path.Combine(My.Application.Info.DirectoryPath, "Log"))
Logger = MyLogger.GetLogger() Logger = MyLogger.GetLogger()
_database = New clsDatabase(MyLogger) _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 Dim notcompleted As Boolean = False
'clsLogger.Init(My.Application.Info.DirectoryPath & "\Log", "_SERVICEResultHandler") 'clsLogger.Init(My.Application.Info.DirectoryPath & "\Log", "_SERVICEResultHandler")
Logger.Debug("RUN_THREAD WMResulthandler started..") Logger.Debug("RUN_THREAD WMResulthandler started..")
@@ -148,9 +147,10 @@ Public Class DDWDResultHandler
_windream = New clsWindream_allgemein(MyLogger) _windream = New clsWindream_allgemein(MyLogger)
'windream initialisieren 'windream initialisieren
If _windream.Init() = True Then If _windream.Init() = True Then
clsCURRENT.TEMP_FILES.Clear()
Logger.Debug("windream vollumfänglich initialisiert!") Logger.Debug("windream vollumfänglich initialisiert!")
'Zur sicherheit die DB nochmal initialiseren '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") Dim DT As DataTable = _database.Return_Datatable("select * from TBWMRH_KONFIGURATION where GUID = 1")
If DT.Rows.Count = 1 Then If DT.Rows.Count = 1 Then
clsCURRENT.DT_TBWMRH_KONFIGURATION = DT clsCURRENT.DT_TBWMRH_KONFIGURATION = DT
@@ -188,6 +188,17 @@ Public Class DDWDResultHandler
Logger.Info("Keine aktiven Profile WMResulthandler vorhanden") Logger.Info("Keine aktiven Profile WMResulthandler vorhanden")
notcompleted = True notcompleted = True
End If 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") _database.Execute_non_Query("UPDATE TBWMRH_KONFIGURATION SET LAST_TICK = GETDATE() WHERE GUID = 1")
If oFirstRun = True Then If oFirstRun = True Then
oFirstRun = False oFirstRun = False
@@ -275,8 +286,8 @@ Public Class DDWDResultHandler
End Sub End Sub
Public Function Thread_Abbrechen() Public Function Thread_Abbrechen()
Try Try
If DDWDResultHandler.threadRunner.IsBusy Then If DDWDResultHandler.threadResultHandler.IsBusy Then
DDWDResultHandler.threadRunner.CancelAsync() DDWDResultHandler.threadResultHandler.CancelAsync()
End If End If
Return True Return True
Catch ex As Exception Catch ex As Exception

View File

@@ -58,21 +58,32 @@ Namespace My
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _ Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("Data Source=172.24.12.41\tests;Initial Catalog=DD_ECM_RENOLIT;Persist Security In"& _ 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")> _ "fo=True;User ID=sa;Password=dd")> _
Public ReadOnly Property SQLSERVER_CS() As String Public ReadOnly Property SQLSERVER_CS_RH() As String
Get Get
Return CType(Me("SQLSERVER_CS"),String) Return CType(Me("SQLSERVER_CS_RH"),String)
End Get End Get
End Property End Property
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _ <Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _ Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("Data Source=172.24.12.41\tests;Initial Catalog=DD_ECM_TEST;Persist Security Info="& _ Global.System.Configuration.DefaultSettingValueAttribute("")> _
"True;User ID=sa;Password=dd")> _
Public ReadOnly Property SQLSERVER_CS_PMRefresh() As String Public ReadOnly Property SQLSERVER_CS_PMRefresh() As String
Get Get
Return CType(Me("SQLSERVER_CS_PMRefresh"),String) Return CType(Me("SQLSERVER_CS_PMRefresh"),String)
End Get End Get
End Property 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 Class
End Namespace End Namespace

View File

@@ -2,11 +2,11 @@
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="My" GeneratedClassName="MySettings" UseMySettingsClassName="true"> <SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="My" GeneratedClassName="MySettings" UseMySettingsClassName="true">
<Profiles /> <Profiles />
<Settings> <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> <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>
<Setting Name="SQLSERVER_CS_PMRefresh" Type="System.String" Scope="Application"> <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> </Setting>
</Settings> </Settings>
</SettingsFile> </SettingsFile>

View File

@@ -9,7 +9,7 @@ Public Class clsPMRefresh
Private oConfigschedule Private oConfigschedule
Private oConfigIDXName_DocID Private oConfigIDXName_DocID
Private oConfigIDXName_Created Private oConfigIDXName_Created
Private oConfigWMDrive 'Private oConfigWMDrive
Private oConfigLOGERRONLY As Boolean Private oConfigLOGERRONLY As Boolean
Sub New(theLogger As LogConfig) Sub New(theLogger As LogConfig)
MyLogger = theLogger MyLogger = theLogger
@@ -31,7 +31,7 @@ Public Class clsPMRefresh
oConfigschedule = oDTPM_CONFIG.Rows(0).Item("SERVICE_SCHEDULE").ToString oConfigschedule = oDTPM_CONFIG.Rows(0).Item("SERVICE_SCHEDULE").ToString
oConfigIDXName_DocID = oDTPM_CONFIG.Rows(0).Item("SERVICE_IDXNAME_DOCID").ToString oConfigIDXName_DocID = oDTPM_CONFIG.Rows(0).Item("SERVICE_IDXNAME_DOCID").ToString
oConfigIDXName_Created = oDTPM_CONFIG.Rows(0).Item("SERVICE_IDXNAME_CREATED").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") oConfigLOGERRONLY = oDTPM_CONFIG.Rows(0).Item("SERVICE_LOG_ERRORS_ONLY")
Dim oSplit As String() Dim oSplit As String()
oSplit = oConfigschedule.Split(";") oSplit = oConfigschedule.Split(";")
@@ -125,7 +125,6 @@ Public Class clsPMRefresh
'---------------------- für jedes Profil die Dateien überprüfen ------------------------ '---------------------- für jedes Profil die Dateien überprüfen ------------------------
For Each Profile_Row In oDTPROFILES.Rows For Each Profile_Row In oDTPROFILES.Rows
oStep = "4a" oStep = "4a"
Console.WriteLine(">> Dateien für Profil '" & Profile_Row.Item("NAME") & "' eintragen")
Logger.Debug("Add info for profile '" & Profile_Row.Item("NAME") & "'") Logger.Debug("Add info for profile '" & Profile_Row.Item("NAME") & "'")
Dim oPROFILE_ID As Integer = Profile_Row.Item("GUID") Dim oPROFILE_ID As Integer = Profile_Row.Item("GUID")
WD_Search = Nothing WD_Search = Nothing
@@ -139,6 +138,7 @@ Public Class clsPMRefresh
oStep = "4d" oStep = "4d"
Dim oDocCount As Integer = 0 Dim oDocCount As Integer = 0
If IsNothing(oDTWM_Results) Then If IsNothing(oDTWM_Results) Then
Logger.Warn("ATTENTION: oDTWM_Results is NOTHING")
Continue For Continue For
End If End If
'Die aktuellen Files auf refreshed = 0 setzten '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 Dim Profil_Docs(oDTWM_Results.Rows.Count - 1, 2) As String
For Each oRow As DataRow In oDTWM_Results.Rows For Each oRow As DataRow In oDTWM_Results.Rows
Dim oDOC_ID = oRow.Item(0) 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, 0) = oRow.Item(0)
Profil_Docs(oDocCount, 1) = oWMFilePath Profil_Docs(oDocCount, 1) = oWMFilePath
'------DMS Erstell-Datum holen -------- '------DMS Erstell-Datum holen --------
@@ -215,6 +215,8 @@ Public Class clsPMRefresh
Else Else
Logger.Warn("ATTENTION: Refresh could not be executed " & oSQLCommand) Logger.Warn("ATTENTION: Refresh could not be executed " & oSQLCommand)
End If End If
Else
Logger.Warn("ATTENTION: WM-Search is nothing.. ")
End If End If
Next Next
oStep = "4i" oStep = "4i"

View File

@@ -228,6 +228,9 @@ Partial Class frmMain
Me.LOG_ERRORS_ONLYCheckBox = New System.Windows.Forms.CheckBox() Me.LOG_ERRORS_ONLYCheckBox = New System.Windows.Forms.CheckBox()
Me.LAST_TICKTextBox = New System.Windows.Forms.TextBox() Me.LAST_TICKTextBox = New System.Windows.Forms.TextBox()
Me.TabPage4 = New System.Windows.Forms.TabPage() 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.Button5 = New System.Windows.Forms.Button()
Me.AUTH_TYPEComboBox = New System.Windows.Forms.ComboBox() Me.AUTH_TYPEComboBox = New System.Windows.Forms.ComboBox()
Me.TBDD_EMAIL_ACCOUNTBindingSource = New System.Windows.Forms.BindingSource(Me.components) Me.TBDD_EMAIL_ACCOUNTBindingSource = New System.Windows.Forms.BindingSource(Me.components)
@@ -2360,6 +2363,9 @@ Partial Class frmMain
' '
'TabPage4 '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(Me.Button5)
Me.TabPage4.Controls.Add(AUTH_TYPELabel) Me.TabPage4.Controls.Add(AUTH_TYPELabel)
Me.TabPage4.Controls.Add(Me.AUTH_TYPEComboBox) Me.TabPage4.Controls.Add(Me.AUTH_TYPEComboBox)
@@ -2401,14 +2407,40 @@ Partial Class frmMain
Me.TabPage4.Text = "Email" Me.TabPage4.Text = "Email"
Me.TabPage4.UseVisualStyleBackColor = True 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 'Button5
' '
Me.Button5.Location = New System.Drawing.Point(294, 381) Me.Button5.Location = New System.Drawing.Point(294, 381)
Me.Button5.Name = "Button5" 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.TabIndex = 35
Me.Button5.Text = "Button5" Me.Button5.Text = "Test Email(RAW)"
Me.Button5.UseVisualStyleBackColor = True Me.Button5.UseVisualStyleBackColor = True
Me.Button5.Visible = False
' '
'AUTH_TYPEComboBox 'AUTH_TYPEComboBox
' '
@@ -3034,4 +3066,7 @@ Partial Class frmMain
Friend WithEvents EncryptToolStripMenuItem As ToolStripMenuItem Friend WithEvents EncryptToolStripMenuItem As ToolStripMenuItem
Friend WithEvents Button5 As Button Friend WithEvents Button5 As Button
Friend WithEvents TextBox1 As TextBox Friend WithEvents TextBox1 As TextBox
Friend WithEvents txtAttachment As TextBox
Friend WithEvents Label6 As Label
Friend WithEvents Button6 As Button
End Class End Class

View File

@@ -260,7 +260,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAI ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAI
DAAAAk1TRnQBSQFMAgEBAwEAAVABAwFQAQMBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo DAAAAk1TRnQBSQFMAgEBAwEAAXgBAwF4AQMBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA

View File

@@ -826,17 +826,44 @@ Public Class frmMain
Dim PWPlain = wrapper.DecryptData(EMAIL_PWTextBox.Text) Dim PWPlain = wrapper.DecryptData(EMAIL_PWTextBox.Text)
Dim sClient = New SmtpClient(EMAIL_SMTPTextBox.Text) Dim sClient = New SmtpClient(EMAIL_SMTPTextBox.Text)
Dim mymesssage As New MailMessage Dim mymesssage As New MailMessage
sClient.Port = 587 sClient.Port = PORTTextBox.Text
sClient.EnableSsl = True If AUTH_TYPEComboBox.Text = "SSL" Then
sClient.EnableSsl = True
Else
sClient.EnableSsl = False
End If
sClient.Credentials = New NetworkCredential(EMAIL_USERTextBox.Text, PWPlain) sClient.Credentials = New NetworkCredential(EMAIL_USERTextBox.Text, PWPlain)
sClient.UseDefaultCredentials = False 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 End Try
@@ -851,9 +878,9 @@ Public Class frmMain
Dim PWPlain = wrapper.DecryptData(EMAIL_PWTextBox.Text) 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, 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, "") = True Then EMAIL_FROMTextBox.Text, EMAIL_SMTPTextBox.Text, PORTTextBox.Text, EMAIL_USERTextBox.Text, PWPlain, AUTH_TYPEComboBox.Text, txtAttachment.Text, True) = True Then
MsgBox("Email was send successfully.", MsgBoxStyle.Information) MsgBox("Email(s) has/have been sent successfully.", MsgBoxStyle.Information)
Else Else
MsgBox("Could not send the testmail. Please check the log.", MsgBoxStyle.Exclamation) MsgBox("Could not send the testmail. Please check the log.", MsgBoxStyle.Exclamation)
End If 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 Private Sub LOG_ERRORS_ONLYCheckBox_CheckedChanged(sender As Object, e As EventArgs) Handles LOG_ERRORS_ONLYCheckBox.CheckedChanged
End Sub 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 End Class