137 lines
4.6 KiB
VB.net
137 lines
4.6 KiB
VB.net
Imports System.Data.SqlClient
|
|
Imports DigitalData.Modules.Database
|
|
Imports DigitalData.Modules.Language
|
|
Imports DigitalData.Modules.Logging
|
|
|
|
Public Class GlobalState
|
|
Private ReadOnly _LogConfig As LogConfig
|
|
Private ReadOnly _Logger As Logger
|
|
Private ReadOnly _MSSQL_IDB As MSSQLServer
|
|
Private ReadOnly _MSSQL_ECM As MSSQLServer
|
|
|
|
Public Property ObjectStores As New List(Of ObjectStore)
|
|
Public Property Connections As New List(Of DatabaseConnection)
|
|
|
|
Public Property TableStore As New DataSet
|
|
|
|
Public Sub New(LogConfig As LogConfig, MSSQL_IDB As MSSQLServer, MSSQL_ECM As MSSQLServer)
|
|
_LogConfig = LogConfig
|
|
_Logger = LogConfig.GetLogger()
|
|
_MSSQL_IDB = MSSQL_IDB
|
|
_MSSQL_ECM = MSSQL_ECM
|
|
End Sub
|
|
|
|
Public Function GetObjectStore(pName As String) As ObjectStore
|
|
Return ObjectStores.
|
|
Where(Function(store) store.Title.ToUpper = pName.ToUpper).
|
|
FirstOrDefault()
|
|
End Function
|
|
|
|
Public Function GetConnection(pConnectionId As Long) As DatabaseConnection
|
|
Return Connections.
|
|
Where(Function(conn) conn.Id = pConnectionId).
|
|
FirstOrDefault()
|
|
End Function
|
|
|
|
Public Function GetCachedTables() As List(Of String)
|
|
Try
|
|
Dim oTables As DataTableCollection = TableStore.Tables
|
|
Dim oList As New List(Of String)
|
|
|
|
For Each oTable As DataTable In oTables
|
|
oList.Add(oTable.TableName)
|
|
Next
|
|
|
|
Return oList
|
|
Catch ex As Exception
|
|
_Logger.Error(ex)
|
|
Return New List(Of String)
|
|
End Try
|
|
End Function
|
|
|
|
Public Function GetConnectionString(pConnectionId As Long) As String
|
|
Dim oConnection = GetConnection(pConnectionId)
|
|
Dim oBuilder As New SqlConnectionStringBuilder With {
|
|
.DataSource = oConnection.Server,
|
|
.InitialCatalog = oConnection.Database,
|
|
.UserID = oConnection.Username,
|
|
.Password = oConnection.Password
|
|
}
|
|
|
|
Return MSSQLServer.DecryptConnectionString(oBuilder.ToString)
|
|
End Function
|
|
|
|
|
|
Public Sub LoadObjectStores()
|
|
_Logger.Info("Loading Object Stores")
|
|
Try
|
|
Dim oSQL As String = "SELECT * FROM VWIDB_OBJECTSTORE"
|
|
Dim oDatatable As DataTable = _MSSQL_IDB.GetDatatable(oSQL)
|
|
|
|
ObjectStores.Clear()
|
|
|
|
_Logger.Info("Found [{0}] Object Stores", oDatatable.Rows.Count)
|
|
|
|
For Each oRow As DataRow In oDatatable.Rows
|
|
Dim oStore As New ObjectStore() With {
|
|
.Id = oRow.Item("OST_ID"),
|
|
.IsArchive = oRow.Item("OS_IS_ARCHIVE"),
|
|
.Path = oRow.Item("IDB_PRAEFIX"),
|
|
.Title = oRow.Item("OS_TITLE")
|
|
}
|
|
_Logger.Info("New Object Store [{0}]", oStore.Title)
|
|
ObjectStores.Add(oStore)
|
|
Next
|
|
Catch ex As Exception
|
|
_Logger.Error(ex)
|
|
End Try
|
|
End Sub
|
|
|
|
Public Sub LoadConnections()
|
|
_Logger.Info("Loading Database Connections")
|
|
Try
|
|
Dim oSQL As String = "SELECT * FROM TBDD_CONNECTION"
|
|
Dim oDatatable As DataTable = _MSSQL_ECM.GetDatatable(oSQL)
|
|
|
|
Connections.Clear()
|
|
|
|
_Logger.Info("Found [{0}] Connections", oDatatable.Rows.Count)
|
|
|
|
For Each oRow As DataRow In oDatatable.Rows
|
|
Dim oConnection As New DatabaseConnection() With {
|
|
.Id = oRow.ItemEx(Of Integer)("GUID"),
|
|
.Active = oRow.ItemEx(Of Boolean)("AKTIV"),
|
|
.Database = oRow.ItemEx(Of String)("DATENBANK"),
|
|
.Title = oRow.ItemEx(Of String)("BEZEICHNUNG"),
|
|
.Password = oRow.ItemEx(Of String)("PASSWORD"),
|
|
.Provider = oRow.ItemEx(Of String)("SQL_PROVIDER"),
|
|
.Server = oRow.ItemEx(Of String)("SERVER"),
|
|
.Username = oRow.ItemEx(Of String)("USERNAME")
|
|
}
|
|
_Logger.Info("New Connection [{0}]", oConnection.Title)
|
|
Connections.Add(oConnection)
|
|
Next
|
|
Catch ex As Exception
|
|
_Logger.Error(ex)
|
|
End Try
|
|
End Sub
|
|
|
|
Class ObjectStore
|
|
Public Id As Long
|
|
Public Title As String
|
|
Public IsArchive As Boolean
|
|
Public Path As String
|
|
End Class
|
|
|
|
Class DatabaseConnection
|
|
Public Id As Long
|
|
Public Title As String
|
|
Public Provider As String
|
|
Public Server As String
|
|
Public Database As String
|
|
Public Username As String
|
|
Public Password As String
|
|
Public Active As Boolean
|
|
End Class
|
|
End Class
|