EDMIService: Use config module, prepare mssql connections
This commit is contained in:
@@ -11,9 +11,10 @@ Public Class EDMIService
|
||||
Implements IEDMIService
|
||||
|
||||
Public Shared LogConfig As LogConfig
|
||||
Public Shared MSSQL As MSSQLServer
|
||||
Public Shared MSSQL_ECM As MSSQLServer
|
||||
Public Shared MSSQL_IDB As MSSQLServer
|
||||
Public Shared Firebird As Firebird
|
||||
Public Shared AppConfig As AppConfig
|
||||
Public Shared AppConfig As Config
|
||||
Public Shared Filesystem As Filesystem.File
|
||||
Public Shared EDMIArchive As EDMI.File.Archive
|
||||
Public Shared GlobalState As GlobalState
|
||||
@@ -33,8 +34,6 @@ Public Class EDMIService
|
||||
_username = oUsername
|
||||
_logger = LogConfig.GetLogger()
|
||||
_logger.Debug("New Request by User [{0}]", _username)
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
Public Function StripDomainFromUsername(UserName As String)
|
||||
@@ -65,45 +64,87 @@ Public Class EDMIService
|
||||
Return True
|
||||
End Function
|
||||
#End Region
|
||||
#Region "=== Database Request ==="
|
||||
Public Sub CreateRequest(Name As String, Optional Debug As Boolean = False)
|
||||
_request = New Request(Name, _username, Firebird, Debug)
|
||||
_debug = Debug
|
||||
|
||||
_logger.Info("Creating request {0}/{1}", _request.Name, _request.RequestId)
|
||||
End Sub
|
||||
|
||||
Public Function CreateDatabaseRequest(Name As String, Optional Debug As Boolean = False) As String Implements IEDMIService.CreateDatabaseRequest
|
||||
CreateRequest(Name, Debug)
|
||||
|
||||
Return _request.Name
|
||||
#Region "=== Database (MSSQL IDB) ==="
|
||||
Public Function ReturnDatatable_MSSQL_IDB(SQL As String) As TableResult Implements IEDMIService.ReturnDatatable_MSSQL_IDB
|
||||
Try
|
||||
_logger.Info($"ReturnDatatable_MSSQL_IDB, SQL: {SQL}")
|
||||
Dim oResult As DataTable = MSSQL_IDB.GetDatatable(SQL)
|
||||
Return New TableResult(oResult)
|
||||
Catch ex As Exception
|
||||
_logger.Error(ex)
|
||||
_request.LogError(ex.Message)
|
||||
Return New TableResult(ex.Message)
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Sub CloseDatabaseRequest() Implements IEDMIService.CloseDatabaseRequest
|
||||
If IsNothing(_request) Then
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
_logger.Info("Closing request {0}", _request.ToString)
|
||||
_request.Connection.Close()
|
||||
_request = Nothing
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
#Region "=== Database (Firebird) ==="
|
||||
Private Sub TestRequestCreated()
|
||||
If IsNothing(_request) Then
|
||||
Throw New Exceptions.NoRequestException()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Function ReturnDatatable(SQL As String) As TableResult Implements IEDMIService.ReturnDatatable
|
||||
Public Function ReturnScalar_MSSQL_IDB(SQL As String) As ScalarResult Implements IEDMIService.ReturnScalar_MSSQL_IDB
|
||||
Try
|
||||
TestRequestCreated()
|
||||
_logger.Info($"ReturnScalar_MSSQL_IDB, SQL: {SQL}")
|
||||
Dim oResult As Object = MSSQL_IDB.GetScalarValue(SQL)
|
||||
Return New ScalarResult(oResult)
|
||||
Catch ex As Exception
|
||||
_logger.Error(ex)
|
||||
_request.LogError(ex.Message)
|
||||
Return New ScalarResult(ex.Message)
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Function ExecuteNonQuery_MSSQL_IDB(SQL As String) As NonQueryResult Implements IEDMIService.ExecuteNonQuery_MSSQL_IDB
|
||||
Try
|
||||
_logger.Info($"ExecuteNonQuery_MSSQL_IDB, SQL: {SQL}")
|
||||
Dim oResult As Boolean = MSSQL_IDB.ExecuteNonQuery(SQL)
|
||||
Return New NonQueryResult()
|
||||
Catch ex As Exception
|
||||
_logger.Error(ex)
|
||||
_request.LogError(ex.Message)
|
||||
Return New NonQueryResult(ex.Message)
|
||||
End Try
|
||||
End Function
|
||||
#End Region
|
||||
|
||||
#Region "=== Database (MSSQL ECM) ==="
|
||||
Public Function ReturnDatatable_MSSQL_ECM(SQL As String) As TableResult Implements IEDMIService.ReturnDatatable_MSSQL_ECM
|
||||
Try
|
||||
_logger.Info($"ReturnDatatable_MSSQL_ECM, SQL: {SQL}")
|
||||
Dim oResult As DataTable = MSSQL_ECM.GetDatatable(SQL)
|
||||
Return New TableResult(oResult)
|
||||
Catch ex As Exception
|
||||
_logger.Error(ex)
|
||||
_request.LogError(ex.Message)
|
||||
Return New TableResult(ex.Message)
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Function ReturnScalar_MSSQL_ECM(SQL As String) As ScalarResult Implements IEDMIService.ReturnScalar_MSSQL_ECM
|
||||
Try
|
||||
_logger.Info($"ReturnScalar_MSSQL_ECM, SQL: {SQL}")
|
||||
Dim oResult As Object = MSSQL_ECM.GetScalarValue(SQL)
|
||||
Return New ScalarResult(oResult)
|
||||
Catch ex As Exception
|
||||
_logger.Error(ex)
|
||||
_request.LogError(ex.Message)
|
||||
Return New ScalarResult(ex.Message)
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Function ExecuteNonQuery_MSSQL_ECM(SQL As String) As NonQueryResult Implements IEDMIService.ExecuteNonQuery_MSSQL_ECM
|
||||
Try
|
||||
_logger.Info($"ExecuteNonQuery_MSSQL_ECM, SQL: {SQL}")
|
||||
Dim oResult As Boolean = MSSQL_ECM.ExecuteNonQuery(SQL)
|
||||
Return New NonQueryResult()
|
||||
Catch ex As Exception
|
||||
_logger.Error(ex)
|
||||
_request.LogError(ex.Message)
|
||||
Return New NonQueryResult(ex.Message)
|
||||
End Try
|
||||
End Function
|
||||
#End Region
|
||||
|
||||
#Region "=== Database (Firebird) ==="
|
||||
Public Function ReturnDatatable_Firebird(SQL As String) As TableResult Implements IEDMIService.ReturnDatatable_Firebird
|
||||
Try
|
||||
_logger.Info($"ReturnDatatable, SQL: {SQL}")
|
||||
_request.LogDebug($"ReturnDatatable, SQL: {SQL}")
|
||||
|
||||
Dim oResult As DataTable = Firebird.GetDatatableWithConnection(SQL, _request.Connection)
|
||||
Return New TableResult(oResult)
|
||||
Catch ex As Exception
|
||||
@@ -113,13 +154,9 @@ Public Class EDMIService
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Function ReturnScalar(SQL As String) As ScalarResult Implements IEDMIService.ReturnScalar
|
||||
Public Function ReturnScalar_Firebird(SQL As String) As ScalarResult Implements IEDMIService.ReturnScalar_Firebird
|
||||
Try
|
||||
TestRequestCreated()
|
||||
|
||||
_logger.Info($"ReturnScalar, SQL: {SQL}")
|
||||
_request.LogDebug($"ReturnScalar, SQL: {SQL}")
|
||||
|
||||
Dim oResult As Object = Firebird.GetScalarValueWithConnection(SQL, _request.Connection)
|
||||
Return New ScalarResult(oResult)
|
||||
Catch ex As Exception
|
||||
@@ -129,13 +166,9 @@ Public Class EDMIService
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Function ExecuteNonQuery(SQL As String) As NonQueryResult Implements IEDMIService.ExecuteNonQuery
|
||||
Public Function ExecuteNonQuery_Firebird(SQL As String) As NonQueryResult Implements IEDMIService.ExecuteNonQuery_Firebird
|
||||
Try
|
||||
TestRequestCreated()
|
||||
|
||||
_logger.Info($"ExecuteNonQuery, SQL: {SQL}")
|
||||
_request.LogDebug($"ExecuteNonQuery, SQL: {SQL}")
|
||||
|
||||
Dim oResult As Boolean = Firebird.ExecuteNonQueryWithConnection(SQL, _request.Connection)
|
||||
Return New NonQueryResult()
|
||||
Catch ex As Exception
|
||||
@@ -145,6 +178,8 @@ Public Class EDMIService
|
||||
End Try
|
||||
End Function
|
||||
#End Region
|
||||
|
||||
|
||||
#Region "=== Document ==="
|
||||
''' <summary>
|
||||
''' Imports a file according to ObjectStoreId
|
||||
@@ -198,7 +233,7 @@ Public Class EDMIService
|
||||
oCommand.Parameters.AddWithValue("@REF_DOCID", 0)
|
||||
oCommand.Parameters.Add(New SqlParameter("@IDB_OBJ_ID", SqlDbType.BigInt))
|
||||
|
||||
Dim oObjectId = MSSQL.GetScalarValue(oCommand, "@IDB_OBJ_ID")
|
||||
Dim oObjectId = MSSQL_IDB.GetScalarValue(oCommand, "@IDB_OBJ_ID")
|
||||
|
||||
Return New Messages.DocumentImportResponse() With {.ObjectId = oObjectId}
|
||||
Catch ex As Exception
|
||||
@@ -210,14 +245,14 @@ Public Class EDMIService
|
||||
Public Function GetFileByObjectId(Data As Messages.DocumentStreamRequest) As Messages.DocumentStreamResponse Implements IEDMIService.GetFileByObjectId
|
||||
Try
|
||||
Dim oSQL As String = $"SELECT ObjectStoreId FROM VWIDB_DOC_DATA WHERE IDB_OBJ_ID = {Data.ObjectId}"
|
||||
Dim oObjectStoreId = MSSQL.GetScalarValue(oSQL)
|
||||
Dim oObjectStoreId = MSSQL_IDB.GetScalarValue(oSQL)
|
||||
|
||||
Dim oObjectStore = GlobalState.ObjectStores.
|
||||
Where(Function(s) s.Id = oObjectStoreId).
|
||||
FirstOrDefault()
|
||||
|
||||
Dim oSQL2 As String = $"SELECT DocRelativePath FROM VWIDB_DOC_DATA WHERE IDB_OBJ_ID = {Data.ObjectId}"
|
||||
Dim oPath As String = MSSQL.GetScalarValue(oSQL2)
|
||||
Dim oPath As String = MSSQL_IDB.GetScalarValue(oSQL2)
|
||||
|
||||
|
||||
If IsNothing(oPath) Then
|
||||
@@ -259,7 +294,7 @@ Public Class EDMIService
|
||||
Public Function ListFilesForUser() As Messages.DocumentListResponse Implements IEDMIService.ListFilesForUser
|
||||
Try
|
||||
Dim oSQL = $"SELECT * FROM VWIDB_DOC_DATA"
|
||||
Dim oDatatable As DataTable = MSSQL.GetDatatable(oSQL)
|
||||
Dim oDatatable As DataTable = MSSQL_IDB.GetDatatable(oSQL)
|
||||
oDatatable.TableName = "DocumentList"
|
||||
|
||||
Return New Messages.DocumentListResponse() With {
|
||||
|
||||
Reference in New Issue
Block a user