Imports System.ComponentModel Imports System.IO Imports System.Text.RegularExpressions Imports DigitalData.EMLProfiler Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Messaging Public Class frmMain Private Logger As DigitalData.Modules.Logging.Logger Private Shared MyLogger As LogConfig Private _database As clsDatabase Private _Encryption As clsEncryption Private _windream As clsWindream_allgemein ' Private _email As clsEmail Private _emailIMAP As clsEmailIMAP Private _LoadInProgress As Boolean = True Private _RunwithLocalemail As Boolean = False Private _SQLServerConString As String Private _Worklist As List(Of String) Private _limilab As DigitalData.Modules.Messaging.Limilab Public Sub New() ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. End Sub Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles Me.Load Try MyLogger = New LogConfig(LogConfig.PathType.CustomPath, Path.Combine(My.Application.Info.DirectoryPath, "Log"), Nothing, My.Application.Info.CompanyName, My.Application.Info.ProductName) _limilab = New Limilab(MyLogger) Logger = MyLogger.GetLogger() If My.Settings.DEBUG = True Then Logger.Info("!! DEBUG is ACTIVE !!") End If MyLogger.Debug = My.Settings.DEBUG InitDatabase() ToolStripProgressBar1.Visible = False Logger.Debug($"AppConfig is located at: [{AppDomain.CurrentDomain.SetupInformation.ConfigurationFile}]") If My.Settings.USE_WM Then _windream = New clsWindream_allgemein(MyLogger) End If '_email = New clsEmail(MyLogger) _emailIMAP = New clsEmailIMAP(MyLogger, _SQLServerConString) Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in FormLoad") End Try If Set_ConnectionStrings() Then Load_AllData() Check_Steps() Active_Color() End If If My.Settings.USE_WM Then ObjektTypenEintragen() End If _Encryption = New clsEncryption("!35452didalog=", MyLogger) End Sub Private Function Set_ConnectionStrings() Try Me.TBEMLP_POLL_PROFILESTableAdapter.Connection.ConnectionString = _SQLServerConString Me.TBEMLP_POLL_PROCESSTableAdapter.Connection.ConnectionString = _SQLServerConString Me.TBEMLP_POLL_STEPSTableAdapter.Connection.ConnectionString = _SQLServerConString Me.TBEMLP_POLL_INDEXING_STEPSTableAdapter.Connection.ConnectionString = _SQLServerConString Me.TBDD_EMAIL_ACCOUNTTableAdapter.Connection.ConnectionString = _SQLServerConString Me.TBEMLP_HISTORYTableAdapter.Connection.ConnectionString = _SQLServerConString Me.TBEMLP_CONFIGTableAdapter.Connection.ConnectionString = _SQLServerConString Return True Catch ex As Exception MsgBox("Unexpected Error in Set ConnectionStrings: " & ex.Message, MsgBoxStyle.Critical) Return False End Try End Function Sub Load_AllData() Try Me.TBDD_EMAIL_ACCOUNTTableAdapter.Fill(Me.MyDataset.TBDD_EMAIL_ACCOUNT) Me.TBEMLP_POLL_PROFILESTableAdapter.Fill(Me.MyDataset.TBEMLP_POLL_PROFILES) Me.TBEMLP_POLL_PROCESSTableAdapter.Fill(Me.MyDataset.TBEMLP_POLL_PROCESS) Me.TBEMLP_POLL_STEPSTableAdapter.Fill(Me.MyDataset.TBEMLP_POLL_STEPS) Me.TBEMLP_POLL_INDEXING_STEPSTableAdapter.Fill(Me.MyDataset.TBEMLP_POLL_INDEXING_STEPS) Catch ex As Exception MsgBox("Unexpected Error in Load_AllData: " & ex.Message, MsgBoxStyle.Critical) End Try End Sub Sub Load_Profiles() Try Me.TBEMLP_POLL_PROFILESTableAdapter.Fill(Me.MyDataset.TBEMLP_POLL_PROFILES) Catch ex As Exception MsgBox("Unexpected Error in Load_Profiles: " & ex.Message, MsgBoxStyle.Critical) End Try End Sub Sub Load_Processes() Try Me.TBEMLP_POLL_PROCESSTableAdapter.Fill(Me.MyDataset.TBEMLP_POLL_PROCESS) Catch ex As Exception MsgBox("Unexpected Error in Load_Processes: " & ex.Message, MsgBoxStyle.Critical) End Try End Sub Sub Load_Steps() Try Me.TBEMLP_POLL_STEPSTableAdapter.Fill(Me.MyDataset.TBEMLP_POLL_STEPS) Catch ex As Exception MsgBox("Unexpected Error in Load_Steps: " & ex.Message, MsgBoxStyle.Critical) End Try End Sub Sub Load_History() Try Me.TBEMLP_HISTORYTableAdapter.Fill(Me.MyDataset.TBEMLP_HISTORY) Catch ex As Exception MsgBox("Error in Load History: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Sub Sub Load_indexingSteps() Try Me.TBEMLP_POLL_INDEXING_STEPSTableAdapter.Fill(Me.MyDataset.TBEMLP_POLL_INDEXING_STEPS) Catch ex As Exception MsgBox("Unexpected Error in Load_indexingSteps: " & ex.Message, MsgBoxStyle.Critical) End Try End Sub Sub Load_Config() Try _LoadInProgress = True Me.TBEMLP_CONFIGTableAdapter.Fill(Me.MyDataset.TBEMLP_CONFIG) Catch ex As Exception MsgBox("Unexpected Error in Load_Config: " & ex.Message, MsgBoxStyle.Critical) End Try _LoadInProgress = False End Sub Private Sub ObjektTypenEintragen() Try If IsNothing(_windream) Then Exit Sub End If ' Combobox leeren Me.WM_OBJEKTTYPEComboBox.Items.Clear() Dim result = _windream.GetObjecttypesAsStrings ' alle Objekttypen durchlaufen For Each oStr In result ' und in die Combobox eintragen Me.WM_OBJEKTTYPEComboBox.Items.Add(oStr) Next Catch ex As Exception MsgBox("Unexpected error in ObjektTypenEintragen", MsgBoxStyle.Critical) End Try End Sub Public Function InitDatabase() Try Dim dbResult As Boolean tslblstatus.BackColor = Color.Transparent If My.Settings.MyConnectionString <> String.Empty Then _SQLServerConString = My.Settings.MyConnectionString If _SQLServerConString.Contains("LOGIT_DMS") Then _SQLServerConString.Replace("LOGIT_DMS", "DD_ECM") Logger.Debug($"Replaced wrong Database in ConString ... ") End If Logger.Debug($"SQL-Server ConnString is [{_SQLServerConString}]") _database = New clsDatabase(MyLogger, My.Settings.MyConnectionString) dbResult = _database.Init(My.Settings.MyConnectionString) Else MsgBox("No Databaseconnection configured. (First Start or Appdata not accessible)" & vbNewLine & "Basic-Config will be loaded.", MsgBoxStyle.Information) TabControl1.SelectedIndex = 1 tslblstatus.Text = "Please add a connection!" tslblstatus.BackColor = Color.Red End If If dbResult = False Then MsgBox("Error in init database. (Connection failed) More information in the logfile.", MsgBoxStyle.Critical) Return False Else Return True End If Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in Init Database:") Return False End Try End Function Private Sub cmbDatenbank_Click(sender As Object, e As EventArgs) Handles cmbDatenbank.Click Try Me.Cursor = Cursors.WaitCursor Dim csb As New SqlClient.SqlConnectionStringBuilder csb.DataSource = Me.txtServer.Text csb.IntegratedSecurity = False csb.UserID = Me.txtUser.Text csb.Password = Me.txtPasswort.Text Dim con As String If chkbxUserAut.Checked Then con = "Data Source=" & Me.txtServer.Text & ";Trusted_Connection=True;" Else 'con = "Server=" & Me.txtServer.Text & ";Database=" & Me.cmbDatenbank.Text & ";User Id=" & Me.txtUser.Text & ";Password=" & Me.txtPasswort.Text & ";" con = "Server=" & Me.txtServer.Text & ";User Id=" & Me.txtUser.Text & ";Password=" & Me.txtPasswort.Text & ";" End If Dim connection As New SqlClient.SqlConnection(con) 'csb.ConnectionString) connection.Open() MyConnectionString = con My.Settings.Save() Dim cmd As New SqlClient.SqlCommand("sp_databases", connection) cmd.CommandType = CommandType.StoredProcedure ' Ausführen und Ergebnis in einer ListBox anzeigen Dim dr As SqlClient.SqlDataReader = cmd.ExecuteReader If dr.HasRows Then cmbDatenbank.Items.Clear() Do While dr.Read cmbDatenbank.Items.Add(dr("Database_Name")) Loop cmbDatenbank.DroppedDown = True Else MsgBox("The standard-databases could not be retrieved. The default database will be set!" & vbNewLine & "Check rights in sql-server for user: " & Me.txtUser.Text, MsgBoxStyle.Exclamation) cmbDatenbank.Text = "DD_ECM" End If connection.Close() Catch ex As Exception If ex.Message.ToLower.Contains("he standard-databases") Or ex.Message.ToLower.Contains("ie standard-datenbanken") Then cmbDatenbank.Text = "DD_ECM" End If MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in Load Databases:") End Try Cursor = Cursors.Default End Sub Private Sub BtnConnect_Click_1(sender As Object, e As EventArgs) Handles BtnConnect.Click Try Dim con As String If chkbxUserAut.Checked Then con = "Server=" & Me.txtServer.Text & ";Database=" & Me.cmbDatenbank.Text & ";Trusted_Connection=True;Application Name=EMLProfiler_Client" Else con = "Server=" & Me.txtServer.Text & ";Database=" & Me.cmbDatenbank.Text & ";User Id=" & Me.txtUser.Text & ";Password=" & Me.txtPasswort.Text & ";Application Name=EMLProfiler_Client" End If Dim connection As New SqlClient.SqlConnection(con) 'csb.ConnectionString) 'während Verbindungsaufbau Sanduhr-Mauszeiger Cursor = Cursors.WaitCursor connection.Open() Cursor = Cursors.Default 'DialogResult = Windows.Forms.DialogResult.OK Dim result As MsgBoxResult Dim msg = "Die Verbindung wurde erfolgreich aufgebaut!" & vbNewLine & "Möchten Sie diese Verbindung nun in der Anwendung speichern?" 'If USER_LANGUAGE <> "de-DE" Then ' msg = "Connection was successfully opened!" & vbNewLine & "Would You like to save it?" 'End If result = MessageBox.Show(msg, "Database-Connection", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If result = MsgBoxResult.Yes Then 'Set the construction string MyConnectionString = con My.Settings.MyConnectionString = MyConnectionString 'csb.ConnectionString _database.Init(MyConnectionString) My.Settings.Save() If chkbxUserAut.Checked = False Then Dim cipherText As String = _Encryption.EncryptData(Me.txtPasswort.Text) Dim pw As String = cipherText con = "Server=" & Me.txtServer.Text & ";Database=" & Me.cmbDatenbank.Text & ";User Id=" & Me.txtUser.Text & ";Password=" & pw & ";" End If Dim csb As New SqlClient.SqlConnectionStringBuilder csb.ConnectionString = MyConnectionString Dim constr = connection.ConnectionString If chkbxUserAut.Checked = False Then constr = constr.Replace(csb.Password, "XXXXX") End If End If Catch ex As Exception Cursor = Cursors.Default MsgBox("Error in Connectionbuild: " & vbNewLine & ex.Message, MsgBoxStyle.Exclamation) End Try End Sub Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork If _RunwithLocalemail = False Then MyLogger.Debug = True Dim _work As New clsWorker(My.Settings.EML_LIMITATION_SENDER, MyLogger, _SQLServerConString, GUIDTextBox.Text, My.Settings.FB_DATASOURCE, My.Settings.FB_DATABASE, My.Settings.FB_USER, My.Settings.FB_PW, My.Settings.USE_WM, ToolStripEmailAccountID.Text, "EmailProfilerTestClient") _work.Start_WorkingProfiles() Else For Each ofile As String In _Worklist Logger.Info($"## Manual working on file {ofile} ... ") Dim _work As New clsWorker(My.Settings.EML_LIMITATION_SENDER, MyLogger, _SQLServerConString, GUIDTextBox.Text, My.Settings.FB_DATASOURCE, My.Settings.FB_DATABASE, My.Settings.FB_USER, My.Settings.FB_PW, My.Settings.USE_WM, ToolStripEmailAccountID.Text, "EmailProfilerTestClient", ofile) _work.Start_WorkingProfiles(True) Next End If Try 'Delete all Tempfiles For Each _file In ClassCurrent.TEMP_FILES System.IO.File.Delete(_file) Next Try Dim oDiTempPath As New IO.DirectoryInfo(System.IO.Path.GetTempPath) Dim oaryFi As IO.FileInfo() = oDiTempPath.GetFiles() For Each fi In oaryFi fi.Delete() Next Catch ex As Exception If MyLogger.Debug = True Then Logger.Warn($"Could not delete the tempfile: {ex.Message}") End If End Try Catch ex As Exception End Try End Sub Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted If e.Error IsNot Nothing Then '' if BackgroundWorker terminated due to error MessageBox.Show(e.Error.Message) 'Label1.Text = "Error occurred!" ElseIf e.Cancelled Then '' otherwise if it was cancelled MessageBox.Show("Task cancelled!") ' Label1.Text = "Task Cancelled!" Else '' otherwise it completed normally MessageBox.Show("Manual Run completed!") 'Label1.Text = "Error completed!" End If tsbtnRunProfiles.Enabled = True tsbtnRunLocalMail.Enabled = True ToolStripProgressBar1.Visible = False End Sub Private Sub tsbtnRunProfiles_Click(sender As Object, e As EventArgs) Handles tsbtnRunProfiles.Click If IsNumeric(ToolStripEmailAccountID.Text) = False Then MsgBox("Choose an email-Profile before running processes!", MsgBoxStyle.Exclamation) Exit Sub End If _RunwithLocalemail = False If Not BackgroundWorker1.IsBusy Then tsbtnRunProfiles.Enabled = False tsbtnRunLocalMail.Enabled = False ToolStripProgressBar1.Visible = True BackgroundWorker1.RunWorkerAsync() End If End Sub Private Sub ToolStripButton28_Click(sender As Object, e As EventArgs) Handles tsbtnRunLocalMail.Click If IsNumeric(ToolStripEmailAccountID.Text) = False Then MsgBox("Choose an email-Profile before running processes!", MsgBoxStyle.Exclamation) Exit Sub End If If Not BackgroundWorker1.IsBusy Then Dim openFileDialog1 As New OpenFileDialog() ' openFileDialog1.InitialDirectory = "c:\" openFileDialog1.Filter = "Emails (*.eml)|*.eml|All files (*.*)|*.*" openFileDialog1.FilterIndex = 2 openFileDialog1.RestoreDirectory = True openFileDialog1.Multiselect = True If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then For Each oFile As String In openFileDialog1.FileNames Dim oList As New List(Of String) oList.Add(oFile) _Worklist = oList Next _RunwithLocalemail = True tsbtnRunLocalMail.Enabled = False tsbtnRunProfiles.Enabled = False ToolStripProgressBar1.Visible = True BackgroundWorker1.RunWorkerAsync() End If End If End Sub Private Sub mWorker_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged Me.ToolStripProgressBar1.Value = e.ProgressPercentage End Sub Private Sub btnShowLogpath_Click(sender As Object, e As EventArgs) Handles btnShowLogpath.Click Process.Start(MyLogger.LogDirectory) End Sub Private Sub TBEMLP_POLL_PROFILESBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Me.Validate() Me.TBEMLP_POLL_PROFILESBindingSource.EndEdit() Me.TableAdapterManager.UpdateAll(Me.MyDataset) End Sub Private Sub ToolStripButton9_Click(sender As Object, e As EventArgs) Handles ToolStripButton9.Click Load_AllData() End Sub Private Sub ToolStripButton10_Click(sender As Object, e As EventArgs) Handles ToolStripButton10.Click Load_Processes() End Sub Private Sub ToolStripButton8_Click(sender As Object, e As EventArgs) Handles ToolStripButton8.Click Try TBEMLP_POLL_PROCESSBindingSource.EndEdit() If MyDataset.TBEMLP_POLL_PROCESS.GetChanges Is Nothing = False Then CHANGED_WHOProcessTextBox.Text = Environment.UserName TBEMLP_POLL_PROCESSBindingSource.EndEdit() TBEMLP_POLL_PROCESSTableAdapter.Update(MyDataset.TBEMLP_POLL_PROCESS) End If Catch ex As Exception MsgBox("Error in Save Process: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Sub Private Sub WM_OBJEKTTYPEComboBox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles WM_OBJEKTTYPEComboBox.SelectedIndexChanged If My.Settings.USE_WM Then Load_Indexdata() End If End Sub Sub Load_Indexdata() Try If Not IsNothing(WM_OBJEKTTYPEComboBox.Text) Then If WM_OBJEKTTYPEComboBox.Text = String.Empty Then Exit Sub End If Me.WM_VECTOR_LOGComboBox.Items.Clear() Me.WM_IDX_BODY_TEXTComboBox.Items.Clear() INDEXNAMEIndexStepsComboBox.Items.Clear() Me.WM_VECTOR_LOGComboBox.Items.Add("") Me.WM_IDX_BODY_TEXTComboBox.Items.Add("") INDEXNAMEIndexStepsComboBox.Items.Add("") 'Me.WM_REFERENCE_INDEXComboBox.Items.Clear() 'Me.WM_REFERENCE_INDEXComboBox.Items.Add("") Dim indexe = _windream.GetIndicesByObjecttype(WM_OBJEKTTYPEComboBox.Text) If indexe IsNot Nothing Then For Each index As String In indexe Me.WM_VECTOR_LOGComboBox.Items.Add(index) WM_IDX_BODY_TEXTComboBox.Items.Add(index) INDEXNAMEIndexStepsComboBox.Items.Add(index) ' WM_REFERENCE_INDEXComboBox.Items.Add(index) Next End If End If Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in load_WDIndices: ") End Try End Sub Private Sub ToolStripButton18_Click(sender As Object, e As EventArgs) Handles ToolStripButton18.Click Load_Steps() End Sub Private Sub WM_IMPORTCheckBox_CheckedChanged(sender As Object, e As EventArgs) Handles WM_IMPORTCheckBox.CheckedChanged If WM_IMPORTCheckBox.Checked Then GroupBox2.Enabled = True Else GroupBox2.Enabled = False End If End Sub Private Sub TBEMLP_POLL_PROFILESBindingSource_AddingNew(sender As Object, e As AddingNewEventArgs) Handles TBEMLP_POLL_PROFILESBindingSource.AddingNew MyDataset.TBEMLP_POLL_PROFILES.ADDED_WHOColumn.DefaultValue = Environment.UserName End Sub Private Sub TBEMLP_POLL_PROCESSBindingSource_AddingNew(sender As Object, e As AddingNewEventArgs) Handles TBEMLP_POLL_PROCESSBindingSource.AddingNew MyDataset.TBEMLP_POLL_PROCESS.ADDED_WHOColumn.DefaultValue = Environment.UserName End Sub Private Sub TBEMLP_POLL_STEPSBindingSource_AddingNew(sender As Object, e As AddingNewEventArgs) Handles TBEMLP_POLL_STEPSBindingSource.AddingNew MyDataset.TBEMLP_POLL_STEPS.ADDED_WHOColumn.DefaultValue = Environment.UserName End Sub Private Sub TBDD_EMAIL_ACCOUNTBindingSource_AddingNew(sender As Object, e As AddingNewEventArgs) Handles TBDD_EMAIL_ACCOUNTBindingSource.AddingNew MyDataset.TBDD_EMAIL_ACCOUNT.ADDED_WHOColumn.DefaultValue = Environment.UserName End Sub Private Sub TBEMLP_POLL_PROCESSBindingSource_PositionChanged(sender As Object, e As EventArgs) Handles TBEMLP_POLL_PROCESSBindingSource.PositionChanged Check_Steps() End Sub Sub Check_Steps() If IsNumeric(GUIDProcessTextBox.Text) Then Dim oItemCount = TBEMLP_POLL_STEPSBindingSource.Count XtraTabPage2.Text = $"Working Steps ({oItemCount})" End If End Sub Sub Check_IndexingSteps() If IsNumeric(GUIDPollStepsTextBox.Text) Then Dim oItemCount = TBEMLP_POLL_INDEXING_STEPSBindingSource.Count XtraTabPage3.Text = $"Indexing Steps ({oItemCount})" End If End Sub Private Sub ToolStripButton27_Click(sender As Object, e As EventArgs) Handles ToolStripButton27.Click Save_email_Profile() End Sub Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click Try TBEMLP_POLL_PROFILESBindingSource.EndEdit() If MyDataset.TBEMLP_POLL_PROFILES.GetChanges Is Nothing = False Then CHANGED_WHOProfilesTextBox.Text = Environment.UserName TBEMLP_POLL_PROFILESBindingSource.EndEdit() TBEMLP_POLL_PROFILESTableAdapter.Update(MyDataset.TBEMLP_POLL_PROFILES) End If Catch ex As Exception MsgBox("Error in Save Process: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Sub Private Sub ToolStripButton17_Click(sender As Object, e As EventArgs) Handles ToolStripButton17.Click Try TBEMLP_POLL_STEPSBindingSource.EndEdit() If MyDataset.TBEMLP_POLL_STEPS.GetChanges Is Nothing = False Then CHANGED_WHOStepsTextBox.Text = Environment.UserName TBEMLP_POLL_STEPSBindingSource.EndEdit() TBEMLP_POLL_STEPSTableAdapter.Update(MyDataset.TBEMLP_POLL_STEPS) End If Catch ex As Exception MsgBox("Error in Save Steps: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Sub Private Sub TBEMLP_POLL_STEPSBindingSource_PositionChanged(sender As Object, e As EventArgs) Handles TBEMLP_POLL_STEPSBindingSource.PositionChanged Check_IndexingSteps() End Sub Private Sub ToolStripButton25_Click(sender As Object, e As EventArgs) Handles ToolStripButton25.Click Try TBEMLP_POLL_INDEXING_STEPSBindingSource.EndEdit() If MyDataset.TBEMLP_POLL_INDEXING_STEPS.GetChanges Is Nothing = False Then CHANGED_WHOIndexingStepsTextBox.Text = Environment.UserName TBEMLP_POLL_INDEXING_STEPSBindingSource.EndEdit() TBEMLP_POLL_INDEXING_STEPSTableAdapter.Update(MyDataset.TBEMLP_POLL_INDEXING_STEPS) End If Catch ex As Exception MsgBox("Error in Save Indexing Steps: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Sub Private Sub ToolStripButton26_Click(sender As Object, e As EventArgs) Handles ToolStripButton26.Click Load_indexingSteps() End Sub Private Sub XtraTabControl1_TabIndexChanged(sender As Object, e As EventArgs) Handles XtraTabControl1.TabIndexChanged End Sub Private Sub XtraTabControl1_SelectedPageChanged(sender As Object, e As DevExpress.XtraTab.TabPageChangedEventArgs) Handles XtraTabControl1.SelectedPageChanged Select Case XtraTabControl1.SelectedTabPageIndex Case 0 Check_Steps() If My.Settings.USE_WM Then Load_Indexdata() End If Case 1 Check_IndexingSteps() Case 2 End Select End Sub Private Sub frmMain_Shown(sender As Object, e As EventArgs) Handles Me.Shown If My.Settings.USE_WM Then Load_Indexdata() End If End Sub Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl1.SelectedIndexChanged tsbtnRunProfiles.Visible = False tslblRefresh.BackColor = Color.Transparent tslblRefresh.Text = "" Select Case TabControl1.SelectedIndex Case 0 tsbtnRunProfiles.Visible = True Case 1 Load_Config() Case 2 ' Load_History() Case 4 Try Dim osql = "SELECT * FROM TBDD_FUNCTION_REGEX WHERE UPPER(FUNCTION_NAME) IN (UPPER('EMAIL_PROFILER - RemoveHTMLText'),UPPER('EMAIL_PROFILER - RemoveHTMLText1'))" Dim oDTFunctionRegex As DataTable = _database.Return_Datatable(osql) txtRegex1.Text = oDTFunctionRegex.Rows(0).Item("REGEX") txtRegex2.Text = oDTFunctionRegex.Rows(1).Item("REGEX") txthtmlEmail.BackColor = Color.Wheat Catch ex As Exception MsgBox("Error in Load Regex: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Select End Sub Private Sub ACTIVECheckBox_CheckedChanged(sender As Object, e As EventArgs) Handles ACTIVECheckBox.CheckedChanged Active_Color() End Sub Sub Active_Color() If ACTIVECheckBox.Checked Then ACTIVECheckBox.BackColor = Color.LimeGreen Else ACTIVECheckBox.BackColor = Color.IndianRed End If End Sub Private Sub PROCESS_NAMEComboBox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles PROCESS_NAMEComboBox.SelectedIndexChanged If PROCESS_NAMEComboBox.SelectedIndex <> -1 Then Select Case PROCESS_NAMEComboBox.Text Case "ProcessManager" txtSubjectExample.Text = "[ProcessManager][EA][DID#[%Dokument-ID]]" Case "Attachment Sniffer" lblDownloadPath.Text = "Download-Path Attachments:" Case "ZugFeRD-Parser" lblDownloadPath.Text = "Download-Path Attachments:" Case Else txtSubjectExample.Text = "" lblDownloadPath.Text = "Download-Path:" End Select End If End Sub Private Sub ToolStripButton34_Click(sender As Object, e As EventArgs) Handles ToolStripButton34.Click Load_History() End Sub Private Sub LOG_ERRORS_ONLYCheckBox_CheckedChanged(sender As Object, e As EventArgs) Handles LOG_ERRORS_ONLYCheckBox.CheckedChanged If _LoadInProgress = True Then Exit Sub MyLogger.Debug = LOG_ERRORS_ONLYCheckBox.Checked My.Settings.Save() Dim upd = $"UPDATE TBEMLP_CONFIG SET CHANGED_WHO = '{Environment.UserName}',LOG_ERRORS_ONLY = '{LOG_ERRORS_ONLYCheckBox.Checked}' WHERE GUID = 1" _database.Execute_non_Query(upd) Load_Config() End Sub Sub Save_Config() Try TBEMLP_CONFIGBindingSource.EndEdit() If MyDataset.TBEMLP_CONFIG.GetChanges Is Nothing = False Then Me.CHANGED_WHOTextBox.Text = Environment.UserName TBEMLP_CONFIGBindingSource.EndEdit() TBEMLP_CONFIGTableAdapter.Update(MyDataset.TBEMLP_CONFIG) End If Catch ex As Exception MsgBox("Error in Save_Config: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Sub Sub Save_email_Profile() Try TBDD_EMAIL_ACCOUNTBindingSource.EndEdit() If MyDataset.TBDD_EMAIL_ACCOUNT.GetChanges Is Nothing = False Then Me.CHANGED_WHOTextBox1.Text = Environment.UserName TBDD_EMAIL_ACCOUNTBindingSource.EndEdit() TBDD_EMAIL_ACCOUNTTableAdapter.Update(MyDataset.TBDD_EMAIL_ACCOUNT) ToolStripStatusLabel1.Text = $"Email-Profil gespeichert [{Now.ToString}]" End If Catch ex As Exception MsgBox("Error in Save_EmailAccount: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try End Sub Private Sub CHECK_INTERVALL_MINUTESNumericUpDown_ValueChanged(sender As Object, e As EventArgs) Handles CHECK_INTERVALL_MINUTESNumericUpDown.ValueChanged If _LoadInProgress = True Then Exit Sub Dim upd = $"UPDATE TBEMLP_CONFIG SET CHANGED_WHO = '{Environment.UserName}',CHECK_INTERVALL_MINUTES = {CHECK_INTERVALL_MINUTESNumericUpDown.Value} WHERE GUID = 1" _database.Execute_non_Query(upd) Load_Config() End Sub 'Private Function GetChildren(ByVal bodyParts As BodyPartCollection) As BodyPartCollection ' Dim children As New BodyPartCollection() ' For i As Integer = 0 To bodyParts.Count - 1 ' children.Add(GetChildren(bodyParts(i).BodyParts)) ' children.Add(bodyParts(i)) ' Next ' Return children 'End Function Private Sub STEP_NAMEComboBox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles STEP_NAMEComboBox.SelectedIndexChanged Label9.Visible = False txtSubjectExample.Visible = False Select Case STEP_NAMEComboBox.Text Case "Easy Approval" Label9.Visible = True txtSubjectExample.Visible = True Case "Download Mail" COPY_2_HDDCheckBox.Checked = True Case Else End Select End Sub Private Sub btnFBD_DonwloadPath_Click(sender As Object, e As EventArgs) Handles btnFBD_DonwloadPath.Click If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then PATH_EMAIL_TEMPTextBox.Text = FolderBrowserDialog1.SelectedPath End If End Sub Private Sub btnFBD_ErrorPath_Click(sender As Object, e As EventArgs) Handles btnFBD_ErrorPath.Click If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then PATH_EMAIL_ERRORSTextBox.Text = FolderBrowserDialog1.SelectedPath End If End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click Dim pwencrypted = _Encryption.EncryptData(txtnewpasswort.Text) EMAIL_PWTextBox.Text = pwencrypted Save_email_Profile() MsgBox("Passwort was encrypted!") End Sub Private Sub btnsendtestmail_Click(sender As Object, e As EventArgs) Handles btnsendtestmail.Click If txtTestmail.Text <> String.Empty Then My.Settings.Save() Dim PWPlain = _Encryption.DecryptData(EMAIL_PWTextBox.Text) If _limilab.NewSMTPEmail(txtTestmail.Text, "Testmail", "This is the body (text will be replaced within profile)", EMAIL_FROMTextBox.Text, EMAIL_SMTPTextBox.Text, PORTTextBox.Text, EMAIL_USERTextBox.Text, PWPlain, AUTH_TYPEComboBox.Text, "frmMain-Test", "", "", True) = True Then MsgBox("Email has been send successfully.", MsgBoxStyle.Information) Else MsgBox("Could not send the testmail. Please check the log.", MsgBoxStyle.Exclamation) End If End If End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btntestImap.Click My.Settings.Save() Dim oSQL = $"SELECT * FROM TBDD_EMAIL_ACCOUNT WHERE GUID = {EMAILIDTextBox.Text}" Dim oDT As DataTable = _database.Return_Datatable(oSQL) If Not IsNothing(oDT) Then If oDT.Rows.Count = 1 Then Dim PWPlain = _Encryption.DecryptData(oDT.Rows(0).Item("EMAIL_PW")) 'Logger.Debug($"PWis !{PWPlain}35452dd=") _limilab.InitIMAP(True, oDT.Rows(0).Item("EMAIL_SMTP"), oDT.Rows(0).Item("PORT_IN"), oDT.Rows(0).Item("EMAIL_USER"), PWPlain, oDT.Rows(0).Item("AUTH_TYPE")) Dim oResult = _limilab.IMAPTestLogin() If oResult = False Then MsgBox("Access Imap NOT successfull", MsgBoxStyle.Critical) Else MsgBox("IMAP-Test Successful!", MsgBoxStyle.Information) btnCheckIMAPObjects.Visible = True End If End If End If End Sub Private Sub btnCheckIMAPObjects_Click(sender As Object, e As EventArgs) Handles btnCheckIMAPObjects.Click Dim oListuids As New List(Of Long) oListuids = _limilab.IMAPGetUnseenMessageIDs() If IsNothing(oListuids) Then MsgBox("Something went wrong! - Check Your log.", MsgBoxStyle.Critical) Else _limilab.CloseImap() MsgBox($"IMAP-Folder contained [{oListuids.Count}] unseen Objects!", MsgBoxStyle.Information) End If End Sub Private Sub btnTestRegEx_Click(sender As Object, e As EventArgs) Handles btnTestRegEx.Click txtResultRegEx.Text = "" Try My.Settings.Save() txtResultRegEx.BackColor = Color.WhiteSmoke ' Instantiate the regular expression object. Dim oReg As Regex = New Regex(txtRegex1.Text, RegexOptions.IgnoreCase) Dim oMatch As Match = oReg.Match(txthtmlEmail.Text) Dim oClearedBodyText = txthtmlEmail.Text Do While oMatch.Success oClearedBodyText = oClearedBodyText.Replace(oMatch.Value, "") 'Dim g As Group = m.Groups(1) 'If g.ToString.StartsWith("&") = False Then ' TEMP_HTML_RESULTS.Add(g.ToString()) 'End If oMatch = oMatch.NextMatch() Loop Logger.Info($"Cleared bodytext after Regex1 is: {oClearedBodyText}") Dim oReg2 As Regex = New Regex(txtRegex2.Text, RegexOptions.IgnoreCase) Dim oMatch2 As Match = oReg2.Match(oClearedBodyText) Do While oMatch2.Success oClearedBodyText = oClearedBodyText.Replace(oMatch2.Value, "") 'Dim g As Group = m.Groups(1) 'If g.ToString.StartsWith("&") = False Then ' TEMP_HTML_RESULTS.Add(g.ToString()) 'End If oMatch2 = oMatch2.NextMatch() Loop Logger.Info($"Cleared bodytext after Regex2 is: {oClearedBodyText}") txtResultRegEx.Text = oClearedBodyText txtResultRegEx.BackColor = Color.Yellow Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical) End Try End Sub Private Sub btnsaveRegex_Click_1(sender As Object, e As EventArgs) Handles btnsaveRegex.Click tslblRefresh.BackColor = Color.Transparent Dim upd = $"UPDATE TBDD_FUNCTION_REGEX SET REGEX = '{txtRegex1.Text}' WHERE UPPER(FUNCTION_NAME) = UPPER('EMAIL_PROFILER - RemoveHTMLText')" If _database.Execute_non_Query(upd) = True Then tslblRefresh.Text = "Regex1 saved - " & Now.ToString tslblRefresh.BackColor = Color.Yellow Else tslblRefresh.Text = "Regex1 NOT saved - Check Your log: " & Now.ToString tslblRefresh.BackColor = Color.Transparent End If End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 'Try ' txthtmlEmail.Text = "" ' txthtmlEmail.BackColor = Color.Wheat ' Dim oOpenFileDialog1 As New OpenFileDialog() ' ' openFileDialog1.InitialDirectory = "c:\" ' oOpenFileDialog1.Filter = "Emails (*.eml)|*.eml|All files (*.*)|*.*" ' oOpenFileDialog1.FilterIndex = 2 ' oOpenFileDialog1.RestoreDirectory = True ' If oOpenFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then ' Dim oMsg_email As New Independentsoft.Email.Mime.Message(oOpenFileDialog1.FileName) ' Dim oBodyText As String = "" ' If IsNothing(oMsg_email.Body) Then ' Dim oAllBodyParts As New BodyPartCollection() ' oAllBodyParts.Add(oMsg_email.BodyParts) ' oAllBodyParts.Add(GetChildren(oMsg_email.BodyParts)) ' For Each bodyPart As BodyPart In oAllBodyParts ' If bodyPart.ContentType IsNot Nothing AndAlso bodyPart.ContentType.Type = "text" AndAlso bodyPart.ContentType.SubType = "plain" Then ' If oBodyText = String.Empty Then ' Logger.Debug(String.Format("BODY1-Text is....#{0}", bodyPart.Body)) ' oBodyText = bodyPart.Body ' Else ' Continue For ' End If ' ElseIf bodyPart.ContentType IsNot Nothing AndAlso bodyPart.ContentType.Type = "text" AndAlso bodyPart.ContentType.SubType = "html" Then ' If oBodyText = String.Empty Then ' oBodyText = bodyPart.Body ' Logger.Debug(String.Format("bodyhtml....#{0}", bodyPart.Body)) ' Else ' Continue For ' End If ' Logger.Debug(String.Format("bodyhtml....#{0}", bodyPart.Body)) ' End If ' Next ' If oBodyText = "" Then ' MsgBox("No html-body extractable?!") ' Else ' txthtmlEmail.Text = oBodyText ' txthtmlEmail.BackColor = Color.Yellow ' End If ' Else ' txthtmlEmail.Text = oMsg_email.Body ' txthtmlEmail.BackColor = Color.Yellow ' End If ' End If 'Catch ex As Exception ' MsgBox(ex.Message, MsgBoxStyle.Critical) 'End Try End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click tslblRefresh.BackColor = Color.Transparent Dim upd = $"UPDATE TBDD_FUNCTION_REGEX SET REGEX = '{txtRegex2.Text}' WHERE UPPER(FUNCTION_NAME) = UPPER('EMAIL_PROFILER - RemoveHTMLText1')" If _database.Execute_non_Query(upd) = True Then tslblRefresh.Text = "Regex2 saved - " & Now.ToString tslblRefresh.BackColor = Color.Yellow Else tslblRefresh.Text = "Regex2 NOT saved - Check Your log: " & Now.ToString tslblRefresh.BackColor = Color.Transparent End If End Sub Private Sub COPY_2_HDDCheckBox_CheckedChanged(sender As Object, e As EventArgs) Handles COPY_2_HDDCheckBox.CheckedChanged If COPY_2_HDDCheckBox.Checked Then PATH_ORIGINALTextBox.Enabled = True Else PATH_ORIGINALTextBox.Enabled = False End If End Sub Private Sub frmMain_ImeModeChanged(sender As Object, e As EventArgs) Handles Me.ImeModeChanged End Sub Private Sub COMMENTTextBox_Leave(sender As Object, e As EventArgs) Handles COMMENTTextBox.Leave Try Dim separatorIndex = COMMENTTextBox.Text.IndexOf(".") TextBox1.Text = COMMENTTextBox.Text.Substring(separatorIndex, COMMENTTextBox.Text.Length - 1) Catch ex As Exception End Try End Sub Private Sub EMAILIDTextBox_TextChanged(sender As Object, e As EventArgs) Handles EMAILIDTextBox.TextChanged If IsNumeric(EMAILIDTextBox) Then ToolStripEmailAccountID.Text = EMAILIDTextBox.Text Else ToolStripEmailAccountID.Text = "Choose Email-Config" End If btnCheckIMAPObjects.Visible = False End Sub Private Sub AUTH_TYPEComboBox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles AUTH_TYPEComboBox.SelectedIndexChanged If AUTH_TYPEComboBox.SelectedIndex <> -1 Then Select Case AUTH_TYPEComboBox.SelectedIndex Case 0 'Start TLS PORT_INTextBox.Enabled = False Case 1 'SSL/TLS PORT_INTextBox.Enabled = True End Select End If End Sub Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged Try If ComboBox1.SelectedIndex <> -1 Then ToolStripEmailAccountID.Text = ComboBox1.SelectedValue End If Catch ex As Exception End Try End Sub End Class