TaskFlow/app/DD_PM_WINDREAM/frmKonfig.vb
2022-04-05 14:00:04 +02:00

284 lines
12 KiB
VB.net

Imports System.Globalization
Imports DigitalData.Modules.Database
Public Class frmKonfig
Private email As New ClassEmail
Dim formshown As Boolean = False
Private Sub frmKonfig_Load(sender As Object, e As System.EventArgs) Handles Me.Load
Try
' Initialize Log Grid
GridControlLogs.DataSource = LOGCONFIG.Logs
GridControlLogs.ForceInitialize()
gvLogs.Columns.First().Caption = "Log Nachricht"
If CONNECTION_STRING_ECM = String.Empty Then
Me.TabControl1.SelectedIndex = 1
Load_ConString("")
Else
Load_ConString(CONNECTION_STRING_ECM)
Me.TBPM_KONFIGURATIONTableAdapter.Connection.ConnectionString = CONNECTION_STRING_ECM
Me.TBPM_KONFIGURATIONTableAdapter.Fill(Me.DD_DMSLiteDataSet.TBPM_KONFIGURATION)
End If
chkLogErrorsOnly.Checked = CBool(DEBUG)
txtIntervall.Text = CONFIG.Config.ReminderTimer
Dim oFontSettings = New List(Of FontSetting) From {
New FontSetting With {.Title = "Kleiner", .Value = -2},
New FontSetting With {.Title = "Normal", .Value = 0},
New FontSetting With {.Title = "Größer", .Value = 2}
}
ComboBoxEdit1.Properties.Items.Clear()
ComboBoxEdit1.Properties.Items.AddRange(oFontSettings)
ComboBoxEdit1.SelectedItem = oFontSettings.
Where(Function(item) item.Value = CONFIG.Config.GridFontSizeDelta).
FirstOrDefault()
Catch ex As Exception
LOGGER.Error(ex)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei Formload Grundkonfig:")
End Try
End Sub
Public Class FontSetting
Public Property Title As String
Public Property Value As Integer
Public Overrides Function ToString() As String
Return Title
End Function
End Class
Private Sub cmbDatenbank_Click(sender As System.Object, e As System.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 & ";"
End If
Dim connection As New SqlClient.SqlConnection(con) 'csb.ConnectionString)
connection.Open()
Dim cmd As New SqlClient.SqlCommand("sp_databases", connection) With {
.CommandType = CommandType.StoredProcedure
}
' Ausführen und Ergebnis in einer ListBox anzeigen
Dim dr As SqlClient.SqlDataReader = cmd.ExecuteReader
If dr.HasRows Then
Do While dr.Read
cmbDatenbank.Items.Add(dr("Database_Name"))
Loop
cmbDatenbank.DroppedDown = True
End If
connection.Close()
Catch ex As Exception
LOGGER.Error(ex)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei Datenbank-Connect:")
End Try
Cursor = Cursors.Default
End Sub
Private Sub BtnConnect_Click(sender As System.Object, e As System.EventArgs) Handles BtnConnect.Click
Try
Dim oPlainConnectionString, oEncryptedConnectionString As String
If chkbxUserAut.Checked Then
oPlainConnectionString = "Data Source=" & Me.txtServer.Text & ";Initial Catalog=" & Me.cmbDatenbank.Text & ";Trusted_Connection=True;"
Else
oPlainConnectionString = "Server=" & Me.txtServer.Text & ";Database=" & Me.cmbDatenbank.Text & ";User Id=" & Me.txtUser.Text & ";Password=" & Me.txtPasswort.Text & ";"
End If
Dim connection As New SqlClient.SqlConnection(oPlainConnectionString) 'csb.ConnectionString)
'während Verbindungsaufbau Sanduhr-Mauszeiger
Cursor = Cursors.WaitCursor
connection.Open()
Cursor = Cursors.Default
'DialogResult = Windows.Forms.DialogResult.OK
Dim result As MsgBoxResult
result = MessageBox.Show("Die Verbindung wurde erfolgreich aufgebaut!" & vbNewLine & "Möchten Sie diese Verbindung nun in der Anwendung speichern?", "Erfolgsmeldung:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If result = MsgBoxResult.Yes Then
'ConnectionString in Anwendung speichern
CONNECTION_STRING_ECM = oPlainConnectionString
'Das Passwort verschlüsseln
If chkbxUserAut.Checked = False Then
Dim wrapper As New ClassEncryption("!35452didalog=")
Dim cipherText As String = wrapper.EncryptData(Me.txtPasswort.Text)
Dim pw As String = cipherText
oEncryptedConnectionString = "Server=" & Me.txtServer.Text & ";Database=" & Me.cmbDatenbank.Text & ";User Id=" & Me.txtUser.Text & ";Password=" & pw & ";"
Else
oEncryptedConnectionString = oPlainConnectionString
End If
If RadioDefaultConnection.Checked Then
LOGGER.Debug("ConnectionString saved")
CONNECTION_STRING_ECM = oPlainConnectionString
CONFIG.Config.ConnectionString = oEncryptedConnectionString
CONFIG.Save(ForceAll:=True)
Else
LOGGER.Debug("ConnectionStringTest saved")
CONNECTION_STRING_ECM = oPlainConnectionString
CONFIG.Config.ConnectionStringTest = oEncryptedConnectionString
CONFIG.Save(ForceAll:=True)
End If
Load_ConString(CONNECTION_STRING_ECM)
Me.TBPM_KONFIGURATIONTableAdapter.Connection.ConnectionString = CONNECTION_STRING_ECM
Me.TBPM_KONFIGURATIONTableAdapter.Fill(Me.DD_DMSLiteDataSet.TBPM_KONFIGURATION)
End If
Catch ex As Exception
LOGGER.Error(ex)
Cursor = Cursors.Default
MsgBox("Fehler beim Verbindungsaufbau: " & vbNewLine & ex.Message, MsgBoxStyle.Exclamation)
End Try
End Sub
Private Sub frmKonfig_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown
formshown = True
End Sub
Private Sub chkbxUserAut_CheckedChanged(sender As Object, e As EventArgs) Handles chkbxUserAut.CheckedChanged
If chkbxUserAut.Checked Then
Me.txtPasswort.Enabled = False
Me.txtUser.Enabled = False
Else
Me.txtPasswort.Enabled = True
Me.txtUser.Enabled = True
End If
End Sub
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles btnLogMail.Click
email.Send_Log_Mail("<b> Log-/SupportMail von Process-Manager DD.</b> <p>",
"Support-Mail Process-Manager", "support@didalog.de", "mail.triplew.de", "support@didalog.de", "ddemail40", "support@didalog.de", False, True)
End Sub
Private Sub TBPM_KONFIGURATIONBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs)
Me.Validate()
Me.TBPM_KONFIGURATIONBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.DD_DMSLiteDataSet)
End Sub
Private Sub Button1_Click_3(sender As Object, e As EventArgs) Handles Button1.Click
MsgBox("Culture-Name: " & CultureInfo.CurrentCulture.Name & vbNewLine & "Culture-ThreeLetterISOLanguageName: " & CultureInfo.CurrentCulture.ThreeLetterISOLanguageName & vbNewLine &
"CurrentUICulture-Name: " & CultureInfo.CurrentUICulture.Name & vbNewLine & "CurrentUICulture-ThreeLetterISOLanguageName: " & CultureInfo.CurrentUICulture.ThreeLetterISOLanguageName)
End Sub
Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs)
My.Settings.Save()
End Sub
Sub Load_ConString(constr As String)
txtActualConnection.Text = MaskConnectionStringPassword(constr)
End Sub
Private Function MaskConnectionStringPassword(ConnectionString As String) As String
If ConnectionString.Contains("Password=") Then
Dim oBuilder As New SqlClient.SqlConnectionStringBuilder() With {
.ConnectionString = ConnectionString
}
Return ConnectionString.Replace(oBuilder.Password, "XXXXXX")
End If
Return ConnectionString
End Function
Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
' Specify that the link was visited.
Me.LinkLabel1.LinkVisited = True
' Navigate to a URL.
System.Diagnostics.Process.Start("http://www.didalog.de/Support")
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Process.Start(CONFIG.UserConfigPath.Replace("UserConfig.xml", ""))
End Sub
Private Sub btnopenlog_Click(sender As Object, e As EventArgs) Handles btnopenlog.Click
'Process.Start(ClassLogger.DateiSpeicherort)
Process.Start(LOGCONFIG.LogDirectory)
End Sub
Private Sub txtIntervall_TextChanged(sender As Object, e As EventArgs) Handles txtIntervall.TextChanged
Try
CONFIG.Config.ReminderTimer = CInt(txtIntervall.Text)
CONFIG.Save()
Catch ex As Exception
End Try
End Sub
Private Sub chkLogErrorsOnly_CheckedChanged(sender As Object, e As EventArgs) Handles chkLogErrorsOnly.CheckedChanged
DEBUG = chkLogErrorsOnly.Checked
LOGCONFIG.Debug = DEBUG
CONFIG.Config.DEBUG = DEBUG
CONFIG.Save()
'SaveMySettingsValue("LogErrorsOnly", chkLogErrorsOnly.Checked)
End Sub
Private Sub RadioDefaultConnection_CheckedChanged(sender As Object, e As EventArgs) Handles RadioDefaultConnection.CheckedChanged
txtActualConnection.Text = MaskConnectionStringPassword(CONFIG.Config.ConnectionString)
End Sub
Private Sub RadioAlternativeConnection_CheckedChanged(sender As Object, e As EventArgs) Handles RadioAlternativeConnection.CheckedChanged
txtActualConnection.Text = MaskConnectionStringPassword(CONFIG.Config.ConnectionStringTest)
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim di As New IO.DirectoryInfo(CONFIG.UserConfigPath.Replace("UserConfig.xml", ""))
Dim diar1 As IO.FileInfo() = di.GetFiles()
Dim dra As IO.FileInfo
'list the names of all files in the specified directory
For Each dra In diar1
If dra.Name <> "UserConfig.xml" Then
Try
System.IO.File.Delete(dra.FullName)
LOGGER.Info($"ConfigFile {dra.FullName} has been deleted!")
Catch ex As Exception
End Try
End If
Next
MsgBox("The UserConfiguration has been set back to default!", MsgBoxStyle.OkOnly)
End Sub
Private Sub LogNachrichtenLeerenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles LogNachrichtenLeerenToolStripMenuItem.Click
LOGCONFIG.ClearLogs()
GridControlLogs.DataSource = LOGCONFIG.Logs
End Sub
Private Sub SpeichereLogAlsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SpeichereLogAlsToolStripMenuItem.Click
Try
SaveFileDialog1.Filter = "Text File|*.txt"
If SaveFileDialog1.ShowDialog() = DialogResult.OK Then
GridControlLogs.ExportToText(SaveFileDialog1.FileName)
End If
Catch ex As Exception
MsgBox("Error in Export: " & ex.Message)
End Try
End Sub
Private Sub ComboBoxEdit1_SelectedValueChanged(sender As Object, e As EventArgs) Handles ComboBoxEdit1.SelectedValueChanged
Try
CONFIG.Config.GridFontSizeDelta = DirectCast(ComboBoxEdit1.EditValue, FontSetting).Value
CONFIG.Save()
Catch ex As Exception
End Try
End Sub
End Class