diff --git a/Database/Adapters/Firebird.vb b/Database/Adapters/Firebird.vb
deleted file mode 100644
index c312e488..00000000
--- a/Database/Adapters/Firebird.vb
+++ /dev/null
@@ -1,351 +0,0 @@
-Imports FirebirdSql.Data.FirebirdClient
-Imports System.Text.RegularExpressions
-Imports DigitalData.Modules.Logging
-Imports System.ComponentModel
-Imports System.Data
-
-'''
-''' MODULE: Firebird
-'''
-''' VERSION: 0.0.0.4
-'''
-''' DATE: 18.12.2018
-'''
-''' DESCRIPTION:
-'''
-''' DEPENDENCIES: NLog, >= 4.5.10
-'''
-''' EntityFramework.Firebird, >= 6.4.0
-'''
-''' FirebirdSql.Data.FirebirdClient, >= 6.4.0
-'''
-''' PARAMETERS: LogConfig, DigitalData.Modules.Logging.LogConfig
-''' The LogFactory containing the current log config. Used to instanciate the class logger for this and any dependent class
-'''
-''' DataSource, String
-''' The server where the database lives, for example 127.0.0.1 or dd-vmx09-vm03
-'''
-''' Database, String
-''' The location of the Database in the format `127.0.0.1:E:\Path\To\Database.FDB`
-'''
-''' User, String
-''' The user name to connect as
-'''
-''' Password, String
-''' The user's password
-'''
-''' PROPERTIES: ConnectionEstablished, Boolean
-''' If the last opened connection was successful
-'''
-''' ConnectionFailed, Boolean
-''' If the last opened connection failed
-'''
-''' ConnectionString, String
-''' The used connectionstring
-'''
-''' EXAMPLES:
-'''
-''' REMARKS: If the connection fails due to "wrong username or password", the cause might be that the server harddrive is full..
-'''
-Public Class Firebird
- Private _Logger As Logger
- Private _LogConfig As LogConfig
- Private _connectionServer As String
- Private _connectionDatabase As String
- Private _connectionUsername As String
- Private _connectionPassword As String
- Private _connectionString As String
- Public _DBInitialized As Boolean = False
-
- Public Const MAX_POOL_SIZE = 1000
-
- Public Enum TransactionMode
-
- NoTransaction
-
- ExternalTransaction
-
- WithTransaction
- End Enum
-
- Public ReadOnly Property ConnectionString As String
- Get
- Return _connectionString
- End Get
- End Property
-
- Public ReadOnly Property DatabaseName As String
- Get
- Dim oRegex As New Regex("^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:")
- Dim oPath As String = oRegex.Replace(_connectionDatabase, "")
- Dim oFileInfo As New IO.FileInfo(oPath)
- Return oFileInfo.Name
- End Get
- End Property
-
- '''
- '''
- '''
- ''' The LogFactory containing the current log config. Used to instanciate the class logger for this and any dependent class
- ''' The server where the database lives, for example 127.0.0.1 or dd-vmx09-vm03
- ''' The location of the Database in the format `127.0.0.1:E:\Path\To\Database.FDB`
- ''' The user name to connect as
- ''' The user's password
- '''
- Public Sub New(LogConfig As LogConfig, Datasource As String, Database As String, User As String, Password As String)
- Try
- _LogConfig = LogConfig
- _Logger = _LogConfig.GetLogger()
- Dim oConnectionString = GetConnectionString(Datasource, Database, User, Password)
-
- _connectionServer = Datasource
- _connectionDatabase = Database
- _connectionUsername = User
- _connectionPassword = Password
- _connectionString = oConnectionString
-
- _Logger.Debug("Connecting to database..")
-
- ' Test the connection
- Dim oConnection = GetConnection()
- ' If initial connection was successfully, close it
- oConnection.Close()
-
- If oConnection Is Nothing Then
- Throw New Exceptions.DatabaseException()
- Else
- _DBInitialized = True
- End If
-
- _Logger.Debug("Connection sucessfully established!")
- Catch ex As Exception
- _Logger.Error(ex)
- End Try
-
- End Sub
-
- Public Function GetConnection() As FbConnection
- Try
- Dim oConnection = New FbConnection(_connectionString)
- oConnection.Open()
-
- Return oConnection
- Catch ex As Exception
- _Logger.Error(ex)
- Return Nothing
- End Try
- End Function
-
- '''
- ''' Builds a connectionstring from the provided arguments.
- '''
- ''' The database server where to connect to
- ''' The datasource, eg. the path of the FDB-file
- ''' The user used to connect to the database
- ''' The password of the connecting user
- ''' A connectionstring
- Private Function GetConnectionString(DataSource As String, Database As String, User As String, Password As String) As String
- Return New FbConnectionStringBuilder With {
- .DataSource = DataSource,
- .Database = Database,
- .UserID = User,
- .Password = Password,
- .Charset = "UTF8",
- .MaxPoolSize = MAX_POOL_SIZE
- }.ToString()
- End Function
-
- Private Function MaybeGetTransaction(Connection As FbConnection, Mode As TransactionMode, Transaction As FbTransaction) As FbTransaction
- If Mode = TransactionMode.NoTransaction Then
- Return Nothing
- ElseIf Mode = TransactionMode.ExternalTransaction Then
- Return Transaction
- Else
- Return Connection.BeginTransaction()
- End If
- End Function
-
- Private Function MaybeCommitTransaction(Transaction As FbTransaction, TransactionMode As TransactionMode) As Boolean
- Select Case TransactionMode
- Case TransactionMode.NoTransaction
- Return True
- Case TransactionMode.ExternalTransaction
- Return True
- Case TransactionMode.WithTransaction
- Try
- Transaction.Commit()
- Return True
- Catch ex As Exception
- _Logger.Error(ex)
- Return False
- End Try
- Case Else
- Return True
- End Select
- End Function
-
- '''
- ''' Executes a non-query command.
- '''
- ''' The command to execute
- ''' The Firebird connection to use
- ''' True, if command was executed sucessfully. Otherwise false.
- Public Function ExecuteNonQueryWithConnection(SqlCommand As String, Connection As FbConnection, Optional TransactionMode As TransactionMode = TransactionMode.WithTransaction, Optional Transaction As FbTransaction = Nothing) As Boolean
- _Logger.Debug("Executing Non-Query: {0}", SqlCommand)
-
- If Connection Is Nothing Then
- _Logger.Warn("Connection is nothing!")
- Return Nothing
- End If
-
- Dim oTransaction = MaybeGetTransaction(Connection, TransactionMode, Transaction)
-
- Try
- Dim oCommand As New FbCommand With {
- .CommandText = SqlCommand,
- .Connection = Connection
- }
-
- If Not IsNothing(oTransaction) Then
- oCommand.Transaction = oTransaction
- End If
-
- oCommand.ExecuteNonQuery()
- _Logger.Debug("Command executed!")
- Catch ex As Exception
- _Logger.Error(ex, $"Error in ExecuteNonQuery while executing command: [{SqlCommand}]")
- _Logger.Warn($"Unexpected error in ExecuteNonQueryWithConnection: [{SqlCommand}]")
- Throw ex
- Finally
- MaybeCommitTransaction(oTransaction, TransactionMode)
- End Try
-
- Return True
- End Function
-
- '''
- ''' Executes a non-query command.
- '''
- ''' The command to execute
- ''' True, if command was executed sucessfully. Otherwise false.
- Public Function ExecuteNonQuery(SqlCommand As String) As Boolean
- Using oConnection As FbConnection = GetConnection()
- Return ExecuteNonQueryWithConnection(SqlCommand, oConnection)
- End Using
- End Function
-
- '''
- ''' Executes a non-query command inside the specified transaction.
- '''
- ''' The command to execute
- ''' True, if command was executed sucessfully. Otherwise false.
- Public Function ExecuteNonQuery(SqlCommand As String, Transaction As FbTransaction) As Boolean
- Using oConnection As FbConnection = GetConnection()
- Return ExecuteNonQueryWithConnection(SqlCommand, oConnection, TransactionMode.ExternalTransaction, Transaction)
- End Using
- End Function
-
- '''
- ''' Executes a sql query resulting in a scalar value.
- '''
- ''' The query to execute
- ''' The Firebird connection to use
- ''' The scalar value if the command was executed successfully. Nothing otherwise.
- Public Function GetScalarValueWithConnection(SqlQuery As String, Connection As FbConnection, Optional TransactionMode As TransactionMode = TransactionMode.WithTransaction, Optional Transaction As FbTransaction = Nothing) As Object
- _Logger.Debug("Fetching Scalar-Value: {0}", SqlQuery)
-
- If Connection Is Nothing Then
- _Logger.Warn("Connection is nothing!")
- Return Nothing
- End If
-
- Dim oTransaction = MaybeGetTransaction(Connection, TransactionMode, Transaction)
- Dim oResult As Object
-
- Try
- Dim oCommand As New FbCommand With {
- .CommandText = SqlQuery,
- .Connection = Connection,
- .Transaction = oTransaction
- }
- oResult = oCommand.ExecuteScalar()
- Catch ex As Exception
- _Logger.Error(ex, $"Error in ReturnScalar while executing command: [{SqlQuery}]")
- Throw ex
- Finally
- MaybeCommitTransaction(oTransaction, TransactionMode)
- End Try
-
- Return oResult
- End Function
-
- '''
- ''' Executes a sql query resulting in a scalar value.
- '''
- ''' The query to execute
- ''' The scalar value if the command was executed successfully. Nothing otherwise.
- Public Function GetScalarValue(SqlQuery As String) As Object
- Dim oConnection As FbConnection = GetConnection()
- Dim oScalarValue As Object = GetScalarValueWithConnection(SqlQuery, oConnection)
- oConnection.Close()
-
- Return oScalarValue
- End Function
-
- '''
- ''' Executes a sql query resulting in a table of values.
- '''
- ''' The query to execute
- ''' The Firebird connection to use
- ''' A datatable containing the results if the command was executed successfully. Nothing otherwise.
- Public Function GetDatatableWithConnection(SqlQuery As String, Connection As FbConnection, Optional TransactionMode As TransactionMode = TransactionMode.NoTransaction, Optional Transaction As FbTransaction = Nothing) As DataTable
- _Logger.Debug("Fetching Datatable: {0}", SqlQuery)
-
- If Connection Is Nothing Then
- _Logger.Warn("Connection is nothing!")
- Return Nothing
- End If
-
- Dim oTransaction = MaybeGetTransaction(Connection, TransactionMode, Transaction)
- Dim oDatatable As New DataTable() With {
- .TableName = "DDRESULT"
- }
-
- Try
- Dim oAdapter As New FbDataAdapter(New FbCommand With {
- .CommandText = SqlQuery,
- .Connection = Connection,
- .Transaction = oTransaction
- })
-
- oAdapter.Fill(oDatatable)
- Catch ex As Exception
- _Logger.Error(ex)
- _Logger.Warn("Error in GetDatatableWithConnection while executing command: [{0}]", SqlQuery)
- Throw ex
- Finally
- MaybeCommitTransaction(oTransaction, TransactionMode)
- End Try
-
- Return oDatatable
- End Function
-
- '''
- ''' Executes a sql query resulting in a table of values.
- '''
- ''' The query to execute
- ''' A datatable containing the results if the command was executed successfully. Nothing otherwise.
- Public Function GetDatatable(SqlQuery As String, Optional TransactionMode As TransactionMode = TransactionMode.NoTransaction, Optional Transaction As FbTransaction = Nothing) As DataTable
- Try
- Dim oConnection As FbConnection = GetConnection()
- Dim oDatatable As DataTable = GetDatatableWithConnection(SqlQuery, oConnection, TransactionMode, Transaction)
- oConnection.Close()
-
- Return oDatatable
- Catch ex As Exception
- _Logger.Error(ex)
- _Logger.Warn("Error in GetDatatable while executing command: '{0}'", SqlQuery)
- Throw ex
- End Try
- End Function
-End Class
diff --git a/Database/Dispatcher.vb b/Database/Dispatcher.vb
index 69c2101a..1fe16a4a 100644
--- a/Database/Dispatcher.vb
+++ b/Database/Dispatcher.vb
@@ -150,10 +150,6 @@ Public Class Dispatcher
Case ConnectionType.Oracle
Return New Oracle(LogConfig, oConnection.ConnectionString, Constants.DEFAULT_TIMEOUT)
- Case ConnectionType.Firebird
- Dim oBuilder As New FirebirdSql.Data.FirebirdClient.FbConnectionStringBuilder(oConnection.ConnectionString)
- Return New Firebird(LogConfig, oBuilder.DataSource, oBuilder.Database, oBuilder.UserID, oBuilder.Password)
-
Case ConnectionType.ODBC
'Dim oBuilder As New Data.Odbc.OdbcConnectionStringBuilder(pConnection.ConnectionString)
'Return New ODBC(LogConfig)
diff --git a/Windream/Helpers.vb b/Windream/Helpers.vb
index 0ddaea76..c0ba83b4 100644
--- a/Windream/Helpers.vb
+++ b/Windream/Helpers.vb
@@ -298,4 +298,5 @@ Public Class Helpers
Friend Shared Function IsVectorIndex(indexType As Integer)
Return VectorIndicies.Contains(indexType)
End Function
+
End Class
diff --git a/Windream/Windream.vb b/Windream/Windream.vb
index 6c691b82..0558ba09 100644
--- a/Windream/Windream.vb
+++ b/Windream/Windream.vb
@@ -4,8 +4,6 @@ Imports System.Text.RegularExpressions
Imports System.Data
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging
-
-
Imports WINDREAMLib
Imports WINDREAMLib.WMObjectEditMode
Imports WMOBRWSLib
@@ -1560,6 +1558,29 @@ Public Class Windream
Dim oIndexType As Integer = GetIndexType(IndexName)
Return Helpers.IsVectorIndex(oIndexType)
End Function
+ Public Function Start_WMCC_andCo()
+ Try
+ ' 04.10.18: Überprüft, ob der Benutzer Mitglied der SERVER_USER Gruppe ist
+ ' Dim sql = "SELECT T.GUID FROM TBDD_GROUPS_USER T INNER JOIN TBDD_GROUPS T1 on T1.GUID = T.GROUP_ID WHERE T1.NAME = 'SERVER_USER' AND T.USER_ID = " & USER_ID
+ 'Dim userExistsInServerUserGroup = DatabaseFallback.GetScalarValueECM(sql) ', CONNECTION_STRING_ECM, "StartWMCC-userExistsInServerUserGroup")
+
+ ' If WMSESSION_STARTSTOP_STARTUP = True Then
+ 'And userExistsInServerUserGroup Is Nothing
+ _logger.Info(">> WINDREAM-Start on ApplicationStart is active!")
+
+ Dim owindreamControlCenter = CreateObject("Wmcc.ControlCenter")
+ Dim owindreamIndexService = CreateObject("WMIndexServer.WMIdxSvControl")
+ owindreamControlCenter.StartVFSService(1)
+ System.Threading.Thread.Sleep(1000)
+ owindreamIndexService.Start()
+ System.Threading.Thread.Sleep(1500)
+ ' End If
+ ' Create_Session()
+ Catch ex As Exception
+ _logger.Error(ex)
+ _logger.Info("Error while starting up WMCC and IndexService: " & ex.Message, True)
+ End Try
+ End Function
#End Region
#Region "Private Methods"