MS clsEmail - Anpassungen divers
This commit is contained in:
@@ -92,6 +92,7 @@
|
||||
<Compile Include="clsDatatabase.vb" />
|
||||
<Compile Include="clsDateiverarbeitung.vb" />
|
||||
<Compile Include="clsEmail.vb" />
|
||||
<Compile Include="clsEncryption.vb" />
|
||||
<Compile Include="clsHelper.vb" />
|
||||
<Compile Include="clsLogger.vb" />
|
||||
<Compile Include="clsProfil.vb" />
|
||||
|
||||
@@ -4,5 +4,8 @@
|
||||
Public WDLAUFWERK, _profObjekttyp, _profwdSuche, _profDay, _profRunType, _Profilname As String
|
||||
Public _proflastRun As Date
|
||||
Public LOG_ERRORS_ONLY As Boolean = False
|
||||
|
||||
Public ARR_Exported_Files()
|
||||
Public DT_TBWMRH_KONFIGURATION As DataTable
|
||||
Public DT_TBDD_EMAIL As DataTable
|
||||
Public CONCATTED_FILE As String
|
||||
End Module
|
||||
|
||||
@@ -355,12 +355,13 @@ Public Class clsDateiverarbeitung
|
||||
' die Zeichen [% und ] entfernen (liefert den wirklichen windream-Index)
|
||||
Dim reg_element_Ohne_SZ As String = reg_element.Value.Replace("[%", "")
|
||||
reg_element_Ohne_SZ = reg_element_Ohne_SZ.Replace("]", "")
|
||||
clsLogger.AddDetailLog("Indexwert aus Index/Variable '" & reg_element_Ohne_SZ & "' auslesen....")
|
||||
clsLogger.AddDetailLog("read indexvalue from index '" & reg_element_Ohne_SZ & "'....")
|
||||
If reg_element_Ohne_SZ = "EXPORTED_FILENAME" Then
|
||||
If EXPORTED_FILENAME <> "" Then
|
||||
_STRING = _STRING.Replace(reg_element.Value, EXPORTED_FILENAME)
|
||||
End If
|
||||
Else
|
||||
clsLogger.Add(">> Attention: WMIndex is an vectorfield - seperation of values via ;", False, "clsDateiverarbeitung.REGEX_REPLACE")
|
||||
Dim wdIndexwert
|
||||
' den Wert des Indexes für das aktuelle Dokument auslesen
|
||||
wdIndexwert = WMFile.GetVariableValue(reg_element_Ohne_SZ)
|
||||
@@ -371,12 +372,29 @@ Public Class clsDateiverarbeitung
|
||||
wdIndexwert = wdIndexwert.ToString.TrimStart
|
||||
clsLogger.AddDetailLog("Ausgelesener Indexwert = '" & wdIndexwert & "'")
|
||||
_STRING = _STRING.Replace(reg_element.Value, wdIndexwert.ToString)
|
||||
clsLogger.AddDetailLog("SQL-String so far (" & i & ") " & _STRING)
|
||||
clsLogger.AddDetailLog("Namenkonvention (" & i & ") " & _STRING)
|
||||
i += 1
|
||||
Else
|
||||
clsLogger.Add(">> Achtung gelesener Wert ist ein Vektorfeld - keine Ersetzung möglich ", False, "clsProfil.Profil_Durchlauf")
|
||||
Dim result As String = ""
|
||||
For Each WMvalue As Object In wdIndexwert
|
||||
If WMvalue.ToString <> String.Empty Then
|
||||
WMvalue = WMvalue.ToString.TrimEnd
|
||||
WMvalue = WMvalue.ToString.TrimStart
|
||||
If result = "" Then
|
||||
result = WMvalue
|
||||
Else
|
||||
result = result & ";" & WMvalue
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
_STRING = _STRING.Replace(reg_element.Value, wdIndexwert.ToString)
|
||||
|
||||
|
||||
Return Nothing
|
||||
End If
|
||||
Else
|
||||
clsLogger.Add(">> Attention: Indexvalue is NOTHING, standardvalue 0 will be used", False, "clsDateiverarbeitung.REGEX_REPLACE")
|
||||
_STRING = _STRING.Replace(reg_element.Value, "0")
|
||||
End If
|
||||
End If
|
||||
|
||||
@@ -384,7 +402,7 @@ Public Class clsDateiverarbeitung
|
||||
Next
|
||||
Return _STRING
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "REGEX_REPLACE")
|
||||
clsLogger.AddError("Unexpected error: " & ex.Message, "REGEX_REPLACE")
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
|
||||
@@ -2,32 +2,32 @@
|
||||
Public Class clsEmail
|
||||
Private Shared MailAktiv As Boolean = False
|
||||
Private Shared MailSSL As Boolean = False
|
||||
Private Shared MailEmpfaenger, MailFrom, MAilSMTP, MailUser, MailUser_PW As String
|
||||
Public Shared Function Init()
|
||||
Try
|
||||
Dim DT As DataTable = clsDatatabase.Return_Datatable("select * from TBKONFIGURATION where GUID = 1 and EMAIL_AKTIV = 1")
|
||||
If DT.Rows.Count = 1 Then
|
||||
For Each row As DataRow In DT.Rows
|
||||
MailEmpfaenger = row.Item("EMAIL_EMP")
|
||||
MailFrom = row.Item("EMAIL_ABS")
|
||||
MAilSMTP = row.Item("EMAIL_SMTP")
|
||||
MailSSL = row.Item("EMAIL_SSL")
|
||||
MailUser = row.Item("EMAIL_USER")
|
||||
MailUser_PW = row.Item("EMAIL_USER_PW")
|
||||
MailAktiv = True
|
||||
Exit For
|
||||
Next
|
||||
Else
|
||||
MailAktiv = False
|
||||
End If
|
||||
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
clsLogger.Add(ex.Message, True, "clsEmail.Init")
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
Public Shared Function Send_EMail(ByVal MailBetreff As String, ByVal vBody As String)
|
||||
'Public Shared Function Init()
|
||||
' Try
|
||||
' Dim DT As DataTable = clsDatatabase.Return_Datatable("select * from TBDD_EMAIL_ACCOUNT where ACTIVE = 1")
|
||||
' If DT.Rows.Count = 1 Then
|
||||
' For Each row As DataRow In DT.Rows
|
||||
|
||||
' MailFrom = row.Item("EMAIL_ABS")
|
||||
' MAilSMTP = row.Item("EMAIL_SMTP")
|
||||
' MailSSL = row.Item("EMAIL_SSL")
|
||||
' MailUser = row.Item("EMAIL_USER")
|
||||
' MailUser_PW = row.Item("EMAIL_USER_PW")
|
||||
' MailAktiv = True
|
||||
' Exit For
|
||||
' Next
|
||||
' Else
|
||||
' MailAktiv = False
|
||||
' End If
|
||||
|
||||
' Return True
|
||||
' Catch ex As Exception
|
||||
' clsLogger.Add(ex.Message, True, "clsEmail.Init")
|
||||
' Return False
|
||||
' End Try
|
||||
' End Function
|
||||
Public Shared Function Send_EMail(ByVal MailBetreff As String, ByVal vBody As String, MailEmpfaenger As String, MailFrom As String, MAilSMTP As String, MailUser As String, MailUser_PW As String, Optional attment As String = "", Optional test As Boolean = False)
|
||||
'#### E-MAIL NACHRICHT VERSENDEN
|
||||
Try
|
||||
Dim empfaenger As String()
|
||||
@@ -40,14 +40,19 @@ Public Class clsEmail
|
||||
'Für jeden Empfänger eine Neue Mail erzeugen
|
||||
For Each _mailempfaenger As String In empfaenger
|
||||
'Neue Nachricht erzeugen:
|
||||
Dim message As New MailMessage(MailFrom, _mailempfaenger, MailBetreff, _
|
||||
"<font face=""Arial"">" & vBody & "<br>Maschine: " & Environment.MachineName & _
|
||||
"<br>Domain-Name: " & Environment.UserDomainName & "<br>" & _
|
||||
"<br>Gesendet am: " & My.Computer.Clock.LocalTime.ToShortDateString & "-" & _
|
||||
Dim message As New MailMessage(MailFrom, _mailempfaenger, MailBetreff,
|
||||
"<font face=""Arial"">" & vBody & "<br>Maschine: " & Environment.MachineName &
|
||||
"<br>Domain-Name: " & Environment.UserDomainName & "<br>" &
|
||||
"<br>Gesendet am: " & My.Computer.Clock.LocalTime.ToShortDateString & "-" &
|
||||
My.Computer.Clock.LocalTime.ToLongTimeString & "</font>")
|
||||
' create and add the attachment(s) */
|
||||
' Dim Attachment As Attachment = New Attachment("E:\test\Frachkostenreport.txt")
|
||||
'message.Attachments.Add(Attachment)
|
||||
If attment <> String.Empty Then
|
||||
If System.IO.File.Exists(attment) Then
|
||||
Dim Attachment As Attachment = New Attachment(attment)
|
||||
message.Attachments.Add(Attachment)
|
||||
End If
|
||||
End If
|
||||
|
||||
With message
|
||||
.IsBodyHtml = True
|
||||
End With
|
||||
@@ -60,16 +65,24 @@ Public Class clsEmail
|
||||
emailClient.UseDefaultCredentials = False
|
||||
emailClient.Credentials = SMTPUserInfo
|
||||
emailClient.Port = 25
|
||||
clsLogger.Add("==> Fehler Email erfolgreich an " & _mailempfaenger & " versendet!", False)
|
||||
clsLogger.Add("==> Email erfolgreich an " & _mailempfaenger & " versendet!", False)
|
||||
clsLogger.Add("==> Text: " & vBody, False)
|
||||
clsLogger.Add("", False)
|
||||
'*Send the message */
|
||||
emailClient.Send(message)
|
||||
If test = True Then
|
||||
MsgBox("The testmail was send successfully", MsgBoxStyle.Information)
|
||||
End If
|
||||
Return True
|
||||
Next
|
||||
Catch ex As Exception
|
||||
clsLogger.Add(ex.Message, True, "cls.SendEmail")
|
||||
If test = True Then
|
||||
MsgBox("Unexpected error in Send Testmail: " & ex.Message, MsgBoxStyle.Critical)
|
||||
End If
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
|
||||
End Class
|
||||
|
||||
72
app/DDWDResultHandler/clsEncryption.vb
Normal file
72
app/DDWDResultHandler/clsEncryption.vb
Normal file
@@ -0,0 +1,72 @@
|
||||
Imports System.Security.Cryptography
|
||||
Public Class clsEncryption
|
||||
Private TripleDes As New TripleDESCryptoServiceProvider
|
||||
Sub New(ByVal key As String)
|
||||
' Initialize the crypto provider.
|
||||
TripleDes.Key = TruncateHash(key, TripleDes.KeySize \ 8)
|
||||
TripleDes.IV = TruncateHash("", TripleDes.BlockSize \ 8)
|
||||
End Sub
|
||||
|
||||
Private Function TruncateHash(
|
||||
ByVal key As String,
|
||||
ByVal length As Integer) As Byte()
|
||||
|
||||
Dim sha1 As New SHA1CryptoServiceProvider
|
||||
|
||||
' Hash the key.
|
||||
Dim keyBytes() As Byte =
|
||||
System.Text.Encoding.Unicode.GetBytes(key)
|
||||
Dim hash() As Byte = sha1.ComputeHash(keyBytes)
|
||||
|
||||
' Truncate or pad the hash.
|
||||
ReDim Preserve hash(length - 1)
|
||||
Return hash
|
||||
End Function
|
||||
Public Function EncryptData(
|
||||
ByVal plaintext As String) As String
|
||||
|
||||
' Convert the plaintext string to a byte array.
|
||||
Dim plaintextBytes() As Byte =
|
||||
System.Text.Encoding.Unicode.GetBytes("!Didalog35452Heuchelheim=" & plaintext)
|
||||
|
||||
' Create the stream.
|
||||
Dim ms As New System.IO.MemoryStream
|
||||
' Create the encoder to write to the stream.
|
||||
Dim encStream As New CryptoStream(ms,
|
||||
TripleDes.CreateEncryptor(),
|
||||
System.Security.Cryptography.CryptoStreamMode.Write)
|
||||
|
||||
' Use the crypto stream to write the byte array to the stream.
|
||||
encStream.Write(plaintextBytes, 0, plaintextBytes.Length)
|
||||
encStream.FlushFinalBlock()
|
||||
|
||||
' Convert the encrypted stream to a printable string.
|
||||
Return Convert.ToBase64String(ms.ToArray)
|
||||
End Function
|
||||
'Entschlüsselt die Zeichenfolge
|
||||
Public Function DecryptData(
|
||||
ByVal encryptedtext As String) As String
|
||||
Try
|
||||
' Convert the encrypted text string to a byte array.
|
||||
Dim encryptedBytes() As Byte = Convert.FromBase64String(encryptedtext)
|
||||
|
||||
' Create the stream.
|
||||
Dim ms As New System.IO.MemoryStream
|
||||
' Create the decoder to write to the stream.
|
||||
Dim decStream As New CryptoStream(ms,
|
||||
TripleDes.CreateDecryptor(),
|
||||
System.Security.Cryptography.CryptoStreamMode.Write)
|
||||
|
||||
' Use the crypto stream to write the byte array to the stream.
|
||||
decStream.Write(encryptedBytes, 0, encryptedBytes.Length)
|
||||
decStream.FlushFinalBlock()
|
||||
Dim result = System.Text.Encoding.Unicode.GetString(ms.ToArray)
|
||||
result = result.Replace("!Didalog35452Heuchelheim=", "")
|
||||
' Convert the plaintext stream to a string.
|
||||
Return result
|
||||
Catch ex As Exception
|
||||
Return Nothing
|
||||
End Try
|
||||
|
||||
End Function
|
||||
End Class
|
||||
@@ -101,6 +101,9 @@ Public Class clsProfil
|
||||
clsLogger.Add(">> _profRunType konnte nicht ausgewertet werden - " & arr(0), False)
|
||||
End Select
|
||||
If Run_Profile = True Then
|
||||
DT_TBWMRH_KONFIGURATION = clsDatatabase.Return_Datatable("SELECT * FROM TBWMRH_KONFIGURATION WHERE GUID = 1")
|
||||
DT_TBDD_EMAIL = clsDatatabase.Return_Datatable("SELECT * FROM TBDD_EMAIL_ACCOUNT WHERE ACTIVE = 1")
|
||||
ARR_Exported_Files = Nothing
|
||||
clsLogger.Add(">> Start des Durchlaufes für Profil '" & _Profilname & "'", False)
|
||||
'den Durchlaufszeitpunkt speichern
|
||||
clsDatatabase.Execute_non_Query("Update TBWMRH_PROFIL SET Running = 1 WHERE GUID = " & _profGUID)
|
||||
@@ -132,37 +135,11 @@ Public Class clsProfil
|
||||
|
||||
If clsDateiverarbeitung.InitProfilData = True Then
|
||||
clsLogger.AddDetailLog("clsDateiverarbeitung.InitProfilData = True")
|
||||
|
||||
|
||||
|
||||
'For Each DR_PR_JB As DataRow In DT_PROFIL_JOB.Rows
|
||||
' Dim result = DR_PR_JB.Item("JOB_TYP").ToString.ToUpper
|
||||
' Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper
|
||||
' Case "BNS json Download".ToUpper
|
||||
' 'ARRAY oder Äqivalent bilden
|
||||
' Dim sb As New StringBuilder()
|
||||
' Dim sw As New StringWriter(sb)
|
||||
' Using writer As JsonWriter = New JsonTextWriter(sw)
|
||||
' writer.Formatting = Formatting.Indented
|
||||
|
||||
' writer.WriteStartObject()
|
||||
' writer.WritePropertyName("CPU")
|
||||
' writer.WriteValue("Intel")
|
||||
' writer.WritePropertyName("PSU")
|
||||
' writer.WriteValue("500W")
|
||||
' writer.WritePropertyName("Drives")
|
||||
' writer.WriteStartArray()
|
||||
' writer.WriteValue("DVD read/writer")
|
||||
' writer.WriteComment("(broken)")
|
||||
' writer.WriteValue("500 gigabyte hard drive")
|
||||
' writer.WriteValue("200 gigabype hard drive")
|
||||
' writer.WriteEnd()
|
||||
' writer.WriteEndObject()
|
||||
' End Using
|
||||
' Console.WriteLine(sb.ToString())
|
||||
' End Select
|
||||
'Next
|
||||
For Each _JOBROW As DataRow In DT_PROFIL_JOB.Rows
|
||||
clsLogger.AddDetailLog("JOB_TYP: " & _JOBROW.Item("JOB_TYP").ToString.ToUpper & " GUID: " & _JOBROW.Item("GUID").ToString)
|
||||
Next
|
||||
Dim FileJobSuccessful As Boolean = False
|
||||
Dim CountExportedDoc As Integer = 0
|
||||
For Each WMdok As WMObject In windreamSucheErgebnisse
|
||||
For Each DR_PR_JB As DataRow In DT_PROFIL_JOB.Rows
|
||||
Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper
|
||||
@@ -174,107 +151,17 @@ Public Class clsProfil
|
||||
' aktuelles Dokument zum Export bereitstellen
|
||||
EXPORTED_FILENAME = ""
|
||||
If clsDateiverarbeitung.Export_File(WMdok, DR_PR_JB.Item("STRING1")) = True Then
|
||||
ReDim Preserve ARR_Exported_Files(CountExportedDoc)
|
||||
ARR_Exported_Files(CountExportedDoc) = EXPORTED_FILENAME
|
||||
CountExportedDoc += 1
|
||||
FileJobSuccessful = True
|
||||
'If DT_PROFIL_FILE_JOB.Rows.Count > 0 Then
|
||||
' clsLogger.AddDetailLog("Anzahl DT_PROFIL_FILE_JOB.Rows.Count:" & DT_PROFIL_FILE_JOB.Rows.Count)
|
||||
' 'Für jeden File-Job
|
||||
|
||||
' For Each DR_PR_FILE_JOB As DataRow In DT_PROFIL_FILE_JOB.Rows
|
||||
' If FileJobSuccessful = False Then
|
||||
' clsLogger.Add("AUSSTIEG FOR SCHLEIFE...", True)
|
||||
' clsLogger.WriteLog()
|
||||
' Exit For
|
||||
' End If
|
||||
' Select Case DR_PR_FILE_JOB.Item("TYP").ToString.ToLower
|
||||
' Case "Set Index".ToLower
|
||||
' Try
|
||||
' 'Überprüfen ob Value bereits gesetzt wurde?
|
||||
' Dim idxName As String = DR_PR_FILE_JOB.Item("STRING1").ToString
|
||||
' Dim idxvalue As String = DR_PR_FILE_JOB.Item("STRING2").ToString
|
||||
' If idxvalue.Contains("[%DATETIME]") Then
|
||||
' idxvalue = idxvalue.Replace("[%DATETIME]", Now.ToString)
|
||||
' End If
|
||||
' clsLogger.AddDetailLog("Datei soll mit Index '" & idxName & "'indexiert werden...")
|
||||
' Dim arrIndex() As String
|
||||
' ReDim Preserve arrIndex(0)
|
||||
' arrIndex(0) = idxName
|
||||
' clsLogger.AddDetailLog("...nach arrIndex")
|
||||
|
||||
' Dim arrValue() As String
|
||||
|
||||
' Dim aktvalue As Object
|
||||
' aktvalue = WMdok.GetVariableValue(idxName)
|
||||
' clsLogger.AddDetailLog("...nach aktValue zuweisen..")
|
||||
|
||||
' If aktvalue Is Nothing Then
|
||||
' clsLogger.AddDetailLog("Index '" & idxName & "' ist noch leer.")
|
||||
' ReDim Preserve arrValue(0)
|
||||
' arrValue(0) = idxvalue
|
||||
' Else
|
||||
' clsLogger.AddDetailLog("Index '" & idxName & "' ist bereits gefüllt.")
|
||||
' Dim myArray()
|
||||
' ReDim myArray(0)
|
||||
' myArray(0) = idxvalue
|
||||
|
||||
' Dim VektorArray()
|
||||
' VektorArray = Return_VektorArray(WMdok, idxName, myArray, True)
|
||||
|
||||
' If VektorArray Is Nothing = False Then
|
||||
' ReDim arrValue(VektorArray.Length - 1)
|
||||
' Array.Copy(VektorArray, arrValue, VektorArray.Length)
|
||||
' End If
|
||||
|
||||
' End If
|
||||
|
||||
' If arrValue Is Nothing = False Then
|
||||
' clsWindream_Index.RunIndexing(WMdok, arrIndex, arrValue, _profObjekttyp)
|
||||
' Else
|
||||
' clsLogger.Add(">> arrValue is nothing - keine Indexierung", False, "clsProfil.Profil_Durchlauf")
|
||||
' End If
|
||||
|
||||
' Catch ex As Exception
|
||||
' clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(SetIndex)")
|
||||
' End Try
|
||||
' Case "Rename File with windream Index".ToLower
|
||||
' clsLogger.AddDetailLog("Exportierte Datei soll nach Indexvorgaben umbenannt werden...")
|
||||
' clsDateiverarbeitung.Rename_File(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString)
|
||||
' Case "Rename File with WMVector (only one)".ToLower
|
||||
' clsLogger.AddDetailLog("Exportierte Datei soll nach VektorIndexvorgaben umbenannt werden...")
|
||||
' clsDateiverarbeitung.Rename_File_Vektor(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString)
|
||||
' Case "Execute Oracle Command".ToLower
|
||||
' Try
|
||||
' clsLogger.AddDetailLog("Execute Oracle Comman.......")
|
||||
' Dim oracleconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString
|
||||
' Dim oracleCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString
|
||||
' FileJobSuccessful = clsDateiverarbeitung.RUN_ORACLE_COMMAND(WMdok, oracleconnectionstring, oracleCommandRAW)
|
||||
' Catch ex As Exception
|
||||
' clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteOracleCommand)")
|
||||
' End Try
|
||||
' Case "Execute MSSQL Command".ToLower
|
||||
' Try
|
||||
' Dim MSSQLconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString
|
||||
' Dim MSSQLCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString
|
||||
' clsLogger.AddDetailLog("Execute MSSQL Command.......")
|
||||
' FileJobSuccessful = clsDateiverarbeitung.RUN_MSSQL_COMMAND(WMdok, MSSQLconnectionstring, MSSQLCommandRAW)
|
||||
' Catch ex As Exception
|
||||
' clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteMSSQLCommand)")
|
||||
' End Try
|
||||
' End Select
|
||||
' 'Abschluss Bearbeitung File Job
|
||||
' clsLogger.WriteLog()
|
||||
' Next
|
||||
'Else
|
||||
' clsLogger.Add(">> KEINE File-JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf")
|
||||
' clsLogger.WriteLog()
|
||||
'End If
|
||||
Else
|
||||
clsDatatabase.Execute_non_Query("UPDATE TBWMRH_PROFIL SET Running = 0, LETZTER_DURCHLAUF = Getdate() WHERE GUID = " & _profGUID)
|
||||
End If
|
||||
'Next
|
||||
Case "BNS json Download".ToUpper
|
||||
FileJobSuccessful = clsDateiverarbeitung.BNSjsonDownload(WMdok, DR_PR_JB.Item("STRING1"), DR_PR_JB.Item("STRING2"))
|
||||
|
||||
|
||||
Case "".ToUpper
|
||||
End Select
|
||||
'Abschluss Bearbeitung Job
|
||||
clsLogger.WriteLog()
|
||||
@@ -283,7 +170,6 @@ Public Class clsProfil
|
||||
'JETZT DER DURCHLAUF DER DATEI-JOBS
|
||||
'##################################
|
||||
If DT_PROFIL_FILE_JOB.Rows.Count > 0 Then
|
||||
Dim filecount As Integer = 0
|
||||
'Für jeden File-Job
|
||||
For Each DR_PR_FILE_JOB As DataRow In DT_PROFIL_FILE_JOB.Rows
|
||||
If FileJobSuccessful = False Then
|
||||
@@ -366,19 +252,161 @@ Public Class clsProfil
|
||||
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteMSSQLCommand)")
|
||||
End Try
|
||||
End Select
|
||||
If filecount >= 20 Then
|
||||
clsLogger.WriteLog()
|
||||
filecount = 0
|
||||
End If
|
||||
'Abschluss Bearbeitung File Job
|
||||
|
||||
Next
|
||||
clsLogger.WriteLog()
|
||||
Else
|
||||
clsLogger.Add(">> KEINE File-JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf")
|
||||
clsLogger.WriteLog()
|
||||
End If
|
||||
Next
|
||||
clsLogger.WriteLog()
|
||||
|
||||
'Jetzt nochmal ein Durchlauf für Profiljobs wo alle Dateien abgearbeitet wurden.
|
||||
For Each DR_PR_JB As DataRow In DT_PROFIL_JOB.Rows
|
||||
clsLogger.AddDetailLog("Now again working on profile-type: " & DR_PR_JB.Item("JOB_TYP") & " - ID: " & DR_PR_JB.Item("GUID"))
|
||||
Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper
|
||||
Case "Concat Files to one pdf".ToUpper
|
||||
clsLogger.AddDetailLog("Case Concat Files to one pdf....")
|
||||
Dim pdftk = DT_TBWMRH_KONFIGURATION.Rows(0).Item("PDF_TK_LOCATION")
|
||||
clsLogger.AddDetailLog("pdftk location: " & pdftk)
|
||||
CONCATTED_FILE = DR_PR_JB.Item("STRING1")
|
||||
clsLogger.AddDetailLog("CONCATTED_FILE location: " & CONCATTED_FILE)
|
||||
Dim deleteJaNein = DR_PR_JB.Item("STRING2").ToString.ToUpper
|
||||
clsLogger.AddDetailLog("deleteJaNein: " & deleteJaNein.ToString)
|
||||
If File.Exists(pdftk) Then
|
||||
If File.Exists(CONCATTED_FILE) Then
|
||||
Try
|
||||
File.Delete(CONCATTED_FILE)
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
|
||||
End If
|
||||
Try
|
||||
Dim myProcess As New Process
|
||||
Dim ProcID
|
||||
myProcess.StartInfo.FileName = pdftk
|
||||
myProcess.StartInfo.CreateNoWindow = False
|
||||
|
||||
Dim _argument As String
|
||||
Dim i As Integer
|
||||
For Each str As String In ARR_Exported_Files
|
||||
If i = 0 Then
|
||||
_argument = """" & str & """"
|
||||
Else
|
||||
_argument = _argument & " " & """" & str & """"
|
||||
End If
|
||||
i += 1
|
||||
Next
|
||||
|
||||
myProcess.StartInfo.Arguments = _argument & " cat output " & CONCATTED_FILE
|
||||
clsLogger.AddDetailLog("Arguments: " & _argument & " cat output " & CONCATTED_FILE)
|
||||
myProcess.Start()
|
||||
ProcID = myProcess.Id
|
||||
|
||||
Dim p As Process
|
||||
p = Process.GetProcessById(ProcID)
|
||||
|
||||
Dim sw As Stopwatch = New Stopwatch()
|
||||
sw.Start()
|
||||
|
||||
Do While p.HasExited = False
|
||||
|
||||
If sw.Elapsed.TotalSeconds = 30 Then
|
||||
clsLogger.AddDetailLog("Still waiting (30 sec) for ending of process-id: " & ProcID.ToString)
|
||||
ElseIf sw.Elapsed.TotalMinutes = 1 Then
|
||||
clsLogger.AddDetailLog("Still waiting (60 sec) for ending of process-id: " & ProcID.ToString & " - Exit now")
|
||||
Exit Do
|
||||
End If
|
||||
Loop
|
||||
clsLogger.AddDetailLog("...process has exited: ")
|
||||
sw.Stop()
|
||||
clsLogger.AddDetailLog("Waiting for file: " & CONCATTED_FILE)
|
||||
Do While File.Exists(CONCATTED_FILE) = False
|
||||
Console.WriteLine("...not existing!")
|
||||
Loop
|
||||
If deleteJaNein = "JA" Then
|
||||
For Each str As String In ARR_Exported_Files
|
||||
Try
|
||||
File.Delete(str)
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError("Unexpected error in deleting ARR_Exported_Files files: " & ex.Message, "clsProfil.Profil_Durchlauf(Concat Files to one pdf)")
|
||||
End Try
|
||||
|
||||
Next
|
||||
End If
|
||||
clsLogger.WriteLog()
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError("Unexpected error: " & ex.Message, "clsProfil.Profil_Durchlauf(Concat Files to one pdf)")
|
||||
End Try
|
||||
|
||||
|
||||
Else
|
||||
clsLogger.AddError("pdftk is not existing", "clsProfil.Profil_Durchlauf(Concat Files to one pdf)")
|
||||
End If
|
||||
Case "Send concatted file via mail".ToUpper
|
||||
clsLogger.AddDetailLog("CASE Send concatted file via mail.... ")
|
||||
If File.Exists(CONCATTED_FILE) = True Then
|
||||
|
||||
Dim Email_Empfänger = DR_PR_JB.Item("STRING1")
|
||||
clsLogger.AddDetailLog("Email_Empfänger: " & Email_Empfänger)
|
||||
Dim Email_Betreff = DR_PR_JB.Item("STRING2")
|
||||
clsLogger.AddDetailLog("Email_Betreff: " & Email_Betreff)
|
||||
Dim Email_Body = DR_PR_JB.Item("STRING3")
|
||||
clsLogger.AddDetailLog("Email_Body: " & Email_Body)
|
||||
Dim EMAIL_PROFIL = DR_PR_JB.Item("STRING4")
|
||||
clsLogger.AddDetailLog("EMAIL_PROFIL: " & EMAIL_PROFIL)
|
||||
If Not IsNothing(DT_TBDD_EMAIL) And DT_TBDD_EMAIL.Rows.Count >= 1 Then
|
||||
Dim MAILFROM As String = ""
|
||||
Dim MAILSMTP As String = ""
|
||||
Dim MAIL_USER As String = ""
|
||||
Dim MAIL_USER_PW As String = ""
|
||||
|
||||
For Each emailrow As DataRow In DT_TBDD_EMAIL.Rows
|
||||
If emailrow.Item("GUID") = CInt(EMAIL_PROFIL) Then
|
||||
MAILFROM = emailrow.Item("EMAIL_FROM")
|
||||
MAILSMTP = emailrow.Item("EMAIL_SMTP")
|
||||
MAIL_USER = emailrow.Item("EMAIL_USER")
|
||||
MAIL_USER_PW = emailrow.Item("EMAIL_PW")
|
||||
End If
|
||||
Next
|
||||
|
||||
Dim wrapper As New clsEncryption("!35452didalog=")
|
||||
|
||||
Dim PWPlain = wrapper.DecryptData(MAIL_USER_PW)
|
||||
If Not IsNothing(PWPlain) Then
|
||||
If PWPlain <> "" Then
|
||||
MAIL_USER_PW = PWPlain
|
||||
Else
|
||||
clsLogger.AddError("PWPlain is string.empty - Could not decrypt passwort", "clsProfil.Profil_Durchlauf(wrapper.DecryptData(MAIL_USER_PW))")
|
||||
clsLogger.WriteLog()
|
||||
Return False
|
||||
End If
|
||||
|
||||
Else
|
||||
clsLogger.AddError("PWPlain is nothing - Could not decrypt passwort", "clsProfil.Profil_Durchlauf(wrapper.DecryptData(MAIL_USER_PW))")
|
||||
clsLogger.WriteLog()
|
||||
Return False
|
||||
End If
|
||||
|
||||
clsEmail.Send_EMail(Email_Betreff, Email_Body, Email_Empfänger, MAILFROM, MAILSMTP, MAIL_USER, MAIL_USER_PW, CONCATTED_FILE)
|
||||
|
||||
|
||||
Else
|
||||
clsLogger.AddError("DT_TBDD_EMAIL is nothing or contains no rows", "clsProfil.Profil_Durchlauf(end concatted file via mail)")
|
||||
clsLogger.WriteLog()
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
clsLogger.AddError("File not existing: " & CONCATTED_FILE, "clsProfil.Profil_Durchlauf(Send concatted file via mail)")
|
||||
End If
|
||||
|
||||
|
||||
End Select
|
||||
Next
|
||||
clsLogger.WriteLog()
|
||||
Else
|
||||
clsLogger.Add(">> Initialisierung Profil nicht erfolgreich", True)
|
||||
clsLogger.WriteLog()
|
||||
|
||||
Reference in New Issue
Block a user