2015-07-27 15:56:59 +02:00

229 lines
9.7 KiB
VB.net

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