Imports System.IO Imports System.Xml Module ModuleMySettings Dim ConfigPath As String = Path.Combine(Application.UserAppDataPath(), "UserConfig.xml") Public MyConnectionString As String = "" Public LogErrorsOnly As Boolean = True Public Sett_TaskOverviewKeepInFront As Boolean = True Public Sett_LoadWD_Docs As Boolean = True Public WDResultListCount As Integer = 300 Public Sett_ShowQuickMenue As Boolean = True Public WD_ShowEnitityDocs As Boolean = True Public WD_ShowDocs As Boolean = False Public WD_IndexDeleteDocs As Boolean = False Public CURRENT_FILE As String = "" Public vWLaufwerk As String = "W" Public vVERSION_DELIMITER As String = "~" Public vFILE_DELIMITER As String = "_" Public USER_IS_ADMIN = False Dim rowresult As String = "" Public Function Settings_Load() Try Dim DT As DataTable 'if file doesn't exist, create the file with its default xml table If Not File.Exists(ConfigPath) Then ClassLogger.Add(">> ConfigFile wird erzeugt in: " & ConfigPath, False) DT = CreateConfigTable() DT.WriteXml(ConfigPath) ClassLogger.Add(">> Standardwerte wurden gespeichert.", False) End If DT = GetTablefromXML() If DT Is Nothing Then MsgBox("Konfiguration konnte nicht geladen werden. Check LogFile!", MsgBoxStyle.Critical) Return False End If For Each Row As DataRow In DT.Rows rowresult &= Row.Item("ConfigName") Select Case Row.Item("ConfigName") Case "MyConnectionString" Dim connstring As String 'Den ConnectonString mit verschlüsseltem PW laden Dim csb As New SqlClient.SqlConnectionStringBuilder csb.ConnectionString = Row.Item("Value") If Not csb.ConnectionString = "" Then If csb.ConnectionString.Contains("Password=") Then 'sa- 'Jetzt das Passwort entschlüsseln Dim PWplainText As String Dim wrapper As New ClassEncryption("!35452didalog=") ' DecryptData throws if the wrong password is used. Try PWplainText = wrapper.DecryptData(csb.Password) connstring = Row.Item("Value").ToString.Replace(csb.Password, PWplainText) Catch ex As Exception ClassLogger.Add("- the Password '" & csb.Password & "' could not be decrypted", False) connstring = "" End Try Else 'Windows-Auth connstring = Row.Item("Value").ToString End If MyConnectionString = connstring Else MyConnectionString = "" End If Case "LogErrorsOnly" LogErrorsOnly = CBool(Row.Item("Value")) Case "Sett_TaskOverviewKeepInFront" Sett_TaskOverviewKeepInFront = CBool(Row.Item("Value")) Case "Sett_LoadWD_Docs" Sett_LoadWD_Docs = CBool(Row.Item("Value")) Case "WDResultListCount" If Row.Item("Value") = String.Empty Then WDResultListCount = 300 Else WDResultListCount = CInt(Row.Item("Value")) End If Case "Sett_ShowQuickMenue" Sett_ShowQuickMenue = CBool(Row.Item("Value")) Case "WD_ShowEnitityDocs" WD_ShowEnitityDocs = CBool(Row.Item("Value")) Case "WD_IndexDeleteDocs" WD_IndexDeleteDocs = CBool(Row.Item("Value")) Case "WD_ShowDocs" WD_ShowDocs = CBool(Row.Item("Value")) End Select Next 'update 1.1 If rowresult.Contains("WD_ShowDocs") = False Then Dim newRow As DataRow = DT.NewRow() newRow("ConfigName") = "WD_ShowDocs" newRow("Value") = "False" DT.Rows.Add(newRow) DT.WriteXml(ConfigPath) End If Catch ex As Exception MsgBox("Error in LoadMyConfig" & vbNewLine & ex.Message, MsgBoxStyle.Critical) ClassLogger.Add("Error in LoadMyConfig: " & ex.Message, True) Return False End Try Return True End Function Private Function GetTablefromXML() Try Dim DS As New DataSet DS.ReadXml(ConfigPath) Return DS.Tables(0) Catch ex As Exception MsgBox("Error in GetTablefromXML" & vbNewLine & ex.Message & vbNewLine & "ConfigPath: " & vbNewLine & ConfigPath, MsgBoxStyle.Critical) ClassLogger.Add("Error in GetTablefromXML: " & ex.Message, True) ClassLogger.Add(">> ConfigPath: " & ConfigPath, False) Return Nothing End Try End Function Private Function CreateConfigTable() As DataTable Try ' Create sample Customers table, in order ' to demonstrate the behavior of the DataTableReader. Dim table As New DataTable table.TableName = "MyConfig" ' Create two columns, ID and Name. Dim idColumn As DataColumn = table.Columns.Add("ID", _ GetType(System.Int32)) idColumn.AutoIncrement = True idColumn.AutoIncrementSeed = 0 idColumn.AutoIncrementStep = 1 table.Columns.Add("ConfigName", GetType(System.String)) table.Columns.Add("Value", GetType(System.String)) 'Set the ID column as the primary key column. table.PrimaryKey = New DataColumn() {idColumn} Dim newRow As DataRow = table.NewRow() newRow("ConfigName") = "MyConnectionString" newRow("Value") = "" table.Rows.Add(newRow) Dim newRow1 As DataRow = table.NewRow() newRow1("ConfigName") = "LogErrorsOnly" newRow1("Value") = "True" table.Rows.Add(newRow1) Dim newRow2 As DataRow = table.NewRow() newRow2("ConfigName") = "Sett_TaskOverviewKeepInFront" newRow2("Value") = "True" table.Rows.Add(newRow2) Dim newRow3 As DataRow = table.NewRow() newRow3("ConfigName") = "Sett_LoadWD_Docs" newRow3("Value") = "True" table.Rows.Add(newRow3) Dim newRow4 As DataRow = table.NewRow() newRow4("ConfigName") = "WDResultListCount" newRow4("Value") = "300" table.Rows.Add(newRow4) Dim newRow5 As DataRow = table.NewRow() newRow5("ConfigName") = "Sett_ShowQuickMenue" newRow5("Value") = "True" table.Rows.Add(newRow5) Dim newRow6 As DataRow = table.NewRow() newRow6("ConfigName") = "WD_ShowEnitityDocs" newRow6("Value") = "True" table.Rows.Add(newRow6) Dim newRow7 As DataRow = table.NewRow() newRow7("ConfigName") = "WD_IndexDeleteDocs" newRow7("Value") = "False" table.Rows.Add(newRow7) Dim newRow8 As DataRow = table.NewRow() newRow8("ConfigName") = "WD_ShowDocs" newRow8("Value") = "False" table.Rows.Add(newRow8) table.AcceptChanges() ClassLogger.Add(">> Tabelle wurde erzeugt...", False) Return table Catch ex As Exception MsgBox("Error in CreateConfigTable" & vbNewLine & ex.Message, MsgBoxStyle.Critical) Return Nothing End Try End Function Public Function SaveMySettingsValue(name As String, value As String) Try Dim DT As DataTable DT = GetTablefromXML() If Not DT Is Nothing Then For Each Row As DataRow In DT.Rows If Row.Item("ConfigName") = name Then Row.Item("Value") = value End If Next DT.AcceptChanges() DT.WriteXml(ConfigPath) Else MsgBox("Setting konnte nicht gespeichert werden! Prüfen Sie dei logfile.", MsgBoxStyle.Critical) End If Catch ex As Exception MsgBox("Error in SaveConfigValue" & vbNewLine & ex.Message, MsgBoxStyle.Critical) Return False End Try Return True End Function Public Function Settings_LoadBasicConfig() Try ClassDatabase.Init() Dim sql As String = "select * from tbdd_Modules where NAME = 'Record-Organizer'" Dim DT As DataTable = ClassDatabase.Return_Datatable(sql) If DT.Rows.Count = 1 Then vWLaufwerk = DT.Rows(0).Item("STRING1") vVERSION_DELIMITER = DT.Rows(0).Item("VERSION_DELIMITER") vFILE_DELIMITER = DT.Rows(0).Item("FILE_DELIMITER") Else Return False End If Catch ex As Exception MsgBox("Error in Settings_LoadBasicConfig" & vbNewLine & ex.Message, MsgBoxStyle.Critical) Return False End Try Return True End Function End Module