This commit is contained in:
Digital Data - Marlon Schreiber 2019-02-12 17:47:08 +01:00
commit 8f97ecbe50
3 changed files with 96 additions and 79 deletions

View File

@ -2,7 +2,9 @@
Imports System.Xml
Module ModuleMySettings
Dim ConfigPath As String = Path.Combine(Application.UserAppDataPath(), "UserConfig.xml")
'Dim ConfigPath As String = Path.Combine(Application.UserAppDataPath(), "UserConfig.xml")
Public Const CONFIG_FILE = "UserConfig.xml"
Public MyConnectionString As String = ""
Public UniversalViewer As String = ""
Public PDFXChangeViewer As String = ""
@ -23,173 +25,188 @@ Module ModuleMySettings
Public vFILE_DELIMITER As String = "_"
Public WMSESSION_STARTSTOP_STARTUP As Boolean = False
Public Function GetUserConfigPath() As String
Return Path.Combine(Application.UserAppDataPath(), CONFIG_FILE)
End Function
Public Function GetAllUsersConfigPath() As String
Return Path.Combine(Application.CommonAppDataPath(), CONFIG_FILE)
End Function
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
DT = CreateConfigTable()
DT.WriteXml(ConfigPath)
Dim oDatatable As DataTable
' if file in %APPDATA% doesn't exist,
' check for file in %ALLUSERSPROFILE%,
' otherwise create the file with its default xml table
If File.Exists(GetUserConfigPath()) Then
oDatatable = GetTablefromXML(GetUserConfigPath())
ElseIf File.Exists(GetAllUsersConfigPath()) Then
oDatatable = GetTablefromXML(GetAllUsersConfigPath())
Else
oDatatable = CreateConfigTable()
oDatatable.WriteXml(GetUserConfigPath())
End If
DT = GetTablefromXML()
For Each Row As DataRow In DT.Rows
Select Case Row.Item("ConfigName")
For Each oRow As DataRow In oDatatable.Rows
Select Case oRow.Item("ConfigName")
Case "MyConnectionString"
Dim connstring As String
Dim oConnectionString 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
Dim oBuilder As New SqlClient.SqlConnectionStringBuilder
oBuilder.ConnectionString = oRow.Item("Value")
If Not oBuilder.ConnectionString = "" Then
If oBuilder.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)
PWplainText = wrapper.DecryptData(oBuilder.Password)
Catch ex As Exception
ClassLogger.Add("- the Password '" & csb.Password & "' could not be decrypted", False)
PWplainText = csb.Password
ClassLogger.Add("- the Password '" & oBuilder.Password & "' could not be decrypted", False)
PWplainText = oBuilder.Password
End Try
connstring = Row.Item("Value").ToString.Replace(csb.Password, PWplainText)
oConnectionString = oRow.Item("Value").ToString.Replace(oBuilder.Password, PWplainText)
Else
'Windows-Auth
connstring = Row.Item("Value").ToString
oConnectionString = oRow.Item("Value").ToString
End If
MyConnectionString = connstring
MyConnectionString = oConnectionString
ClassDatabase.Init()
Else
MyConnectionString = ""
End If
Case "LogErrorsOnly"
LogErrorsOnly = CBool(Row.Item("Value"))
LogErrorsOnly = CBool(oRow.Item("Value"))
Case "UniversalViewer"
UniversalViewer = Row.Item("Value")
UniversalViewer = oRow.Item("Value")
Case "PDFXChangeViewer"
PDFXChangeViewer = Row.Item("Value")
PDFXChangeViewer = oRow.Item("Value")
Case "PDFViewer_ZoomMode"
PDFViewer_ZoomMode = Row.Item("Value")
PDFViewer_ZoomMode = oRow.Item("Value")
Case "vpdfviewer"
vpdfviewer = Row.Item("Value")
vpdfviewer = oRow.Item("Value")
Case "Viewer"
Viewer = Row.Item("Value")
Viewer = oRow.Item("Value")
Case "SumatraViewer"
SumatraViewer = Row.Item("Value")
SumatraViewer = oRow.Item("Value")
Case "IDX_DMS_ERSTELLT"
IDX_DMS_ERSTELLT = Row.Item("Value")
IDX_DMS_ERSTELLT = oRow.Item("Value")
Case "IDX_DMS_ERSTELLT_ZEIT"
IDX_DMS_ERSTELLT_ZEIT = Row.Item("Value")
IDX_DMS_ERSTELLT_ZEIT = oRow.Item("Value")
Case "USRMNGRPATH"
USRMNGRPATH = Row.Item("Value")
USRMNGRPATH = oRow.Item("Value")
End Select
Next
Return True
Catch ex As Exception
MsgBox("Error in LoadMyConfig" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
Return True
End Function
Private Function GetTablefromXML()
Private Function GetTablefromXML(ConfigPath As String)
Try
Dim DS As New DataSet
DS.ReadXml(ConfigPath)
Return DS.Tables(0)
Dim oDataset As New DataSet
oDataset.ReadXml(ConfigPath)
Return oDataset.Tables(0)
Catch ex As Exception
MsgBox("Error in GetTablefromXML" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
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"
Dim oTable As New DataTable
oTable.TableName = "MyConfig"
' Create two columns, ID and Name.
Dim idColumn As DataColumn = table.Columns.Add("ID", _
Dim oIdColumn As DataColumn = oTable.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))
oIdColumn.AutoIncrement = True
oIdColumn.AutoIncrementSeed = 0
oIdColumn.AutoIncrementStep = 1
oTable.Columns.Add("ConfigName", GetType(System.String))
oTable.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()
oTable.PrimaryKey = New DataColumn() {oIdColumn}
Dim newRow As DataRow = oTable.NewRow()
newRow("ConfigName") = "MyConnectionString"
newRow("Value") = ""
table.Rows.Add(newRow)
Dim newRow1 As DataRow = table.NewRow()
oTable.Rows.Add(newRow)
Dim newRow1 As DataRow = oTable.NewRow()
newRow1("ConfigName") = "LogErrorsOnly"
newRow1("Value") = "True"
table.Rows.Add(newRow1)
Dim newRow2 As DataRow = table.NewRow()
oTable.Rows.Add(newRow1)
Dim newRow2 As DataRow = oTable.NewRow()
newRow2("ConfigName") = "UniversalViewer"
newRow2("Value") = ""
table.Rows.Add(newRow2)
Dim newRow3 As DataRow = table.NewRow()
oTable.Rows.Add(newRow2)
Dim newRow3 As DataRow = oTable.NewRow()
newRow3("ConfigName") = "PDFXChangeViewer"
newRow3("Value") = ""
table.Rows.Add(newRow3)
Dim newRow7 As DataRow = table.NewRow()
oTable.Rows.Add(newRow3)
Dim newRow7 As DataRow = oTable.NewRow()
newRow7("ConfigName") = "SumatraViewer"
newRow7("Value") = ""
table.Rows.Add(newRow7)
Dim newRow4 As DataRow = table.NewRow()
oTable.Rows.Add(newRow7)
Dim newRow4 As DataRow = oTable.NewRow()
newRow4("ConfigName") = "PDFViewer_ZoomMode"
newRow4("Value") = "3"
table.Rows.Add(newRow4)
Dim newRow5 As DataRow = table.NewRow()
oTable.Rows.Add(newRow4)
Dim newRow5 As DataRow = oTable.NewRow()
newRow5("ConfigName") = "vpdfviewer"
newRow5("Value") = "internal"
table.Rows.Add(newRow5)
Dim newRow6 As DataRow = table.NewRow()
oTable.Rows.Add(newRow5)
Dim newRow6 As DataRow = oTable.NewRow()
newRow6("ConfigName") = "Viewer"
newRow6("Value") = "docview"
table.Rows.Add(newRow6)
Dim newRow8 As DataRow = table.NewRow()
oTable.Rows.Add(newRow6)
Dim newRow8 As DataRow = oTable.NewRow()
newRow8("ConfigName") = "IDX_DMS_ERSTELLT"
newRow8("Value") = "DMS erstellt"
table.Rows.Add(newRow8)
Dim newRow9 As DataRow = table.NewRow()
oTable.Rows.Add(newRow8)
Dim newRow9 As DataRow = oTable.NewRow()
newRow9("ConfigName") = "IDX_DMS_ERSTELLT_ZEIT"
newRow9("Value") = "DMS erstellt (Zeit)"
table.Rows.Add(newRow9)
Dim newRow10 As DataRow = table.NewRow()
oTable.Rows.Add(newRow9)
Dim newRow10 As DataRow = oTable.NewRow()
newRow10("ConfigName") = "USRMNGRPATH"
newRow10("Value") = ""
table.Rows.Add(newRow10)
table.AcceptChanges()
Return table
oTable.Rows.Add(newRow10)
oTable.AcceptChanges()
Return oTable
Catch ex As Exception
MsgBox("Error in CreateConfigTable" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
''' <summary>
''' Save settings to user config, NOT to common config
''' </summary>
Public Function SaveMySettingsValue(name As String, value As String)
Try
Dim DT As DataTable
DT = GetTablefromXML()
Dim oConfigPath = GetUserConfigPath()
Dim oDatatable As DataTable = GetTablefromXML(oConfigPath)
For Each Row As DataRow In DT.Rows
For Each Row As DataRow In oDatatable.Rows
If Row.Item("ConfigName") = name Then
Row.Item("Value") = value
End If
Next
DT.AcceptChanges()
DT.WriteXml(ConfigPath)
oDatatable.AcceptChanges()
oDatatable.WriteXml(oConfigPath)
Return True
Catch ex As Exception
MsgBox("Error in SaveConfigValue" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
Return True
End Function
End Module

View File

@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.9.5.5")>
<Assembly: AssemblyVersion("1.9.5.6")>
<Assembly: AssemblyFileVersion("1.0.0.0")>

View File

@ -35,7 +35,7 @@ Public Class frmMain
Catch ex As Exception
ClassLogger.Add("Error in Save FormLayout: " & ex.Message)
End Try
If WINDREAM.oSession.aLoggedin = True Then
If WINDREAM?.oSession?.aLoggedin = True Then
WINDREAM.Stop_WMCC_andCo()
End If
'If _windreamPM.oSession.aLoggedin = True Then