diff --git a/Service.EDMIService/EDMIService.vb b/Service.EDMIService/EDMIService.vb index cd4a0ba1..cca35d6b 100644 --- a/Service.EDMIService/EDMIService.vb +++ b/Service.EDMIService/EDMIService.vb @@ -77,6 +77,12 @@ Public Class EDMIService Return oImportFile.Run(pData) End Function + Public Function GetFileObject(pData As GetFileObject.GetFileObjectRequest) As GetFileObject.GetFileObjectResponse Implements IEDMIService.GetFileObject + _Logger.Debug("Start of Method [GetFileObject]") + Dim oGetFileObject As New GetFileObject.GetFileObjectMethod(LogConfig, MSSQL_IDB, GlobalState) + Return oGetFileObject.Run(pData) + End Function + #Region "=== Heartbeat ===" Public Function Heartbeat() As Boolean Implements IEDMIService.Heartbeat Return True diff --git a/Service.EDMIService/EDMIService.vbproj b/Service.EDMIService/EDMIService.vbproj index da72cb41..f5272e03 100644 --- a/Service.EDMIService/EDMIService.vbproj +++ b/Service.EDMIService/EDMIService.vbproj @@ -138,6 +138,10 @@ + + + + diff --git a/Service.EDMIService/IEDMIService.vb b/Service.EDMIService/IEDMIService.vb index 717056d6..77976c41 100644 --- a/Service.EDMIService/IEDMIService.vb +++ b/Service.EDMIService/IEDMIService.vb @@ -72,6 +72,8 @@ Interface IEDMIService Function ImportFile(Data As GlobalIndexer.ImportFile.ImportFileRequest) As GlobalIndexer.ImportFile.ImportFileResponse + + Function GetFileObject(Data As GetFileObject.GetFileObjectRequest) As GetFileObject.GetFileObjectResponse #End Region #Region "Document (Old)" diff --git a/Service.EDMIService/Methods/GetFileObject/FileObject.vb b/Service.EDMIService/Methods/GetFileObject/FileObject.vb new file mode 100644 index 00000000..616adc7f --- /dev/null +++ b/Service.EDMIService/Methods/GetFileObject/FileObject.vb @@ -0,0 +1,10 @@ +Namespace Methods.GetFileObject + + Public Class FileObject + Public Property ObjectId As Long + Public Property AccessRights As String + Public Property FileHash As String + Public Property FileSize As Long + End Class + +End Namespace \ No newline at end of file diff --git a/Service.EDMIService/Methods/GetFileObject/GetFileObjectMethod.vb b/Service.EDMIService/Methods/GetFileObject/GetFileObjectMethod.vb new file mode 100644 index 00000000..b8b3eba0 --- /dev/null +++ b/Service.EDMIService/Methods/GetFileObject/GetFileObjectMethod.vb @@ -0,0 +1,44 @@ +Imports DigitalData.Modules.Database +Imports DigitalData.Modules.Logging +Imports DigitalData.Modules.Language + +Namespace Methods.GetFileObject + Public Class GetFileObjectMethod + Inherits BaseMethod + + Public Sub New(pLogConfig As LogConfig, pMSSQLServer As MSSQLServer, pGlobalState As GlobalState) + MyBase.New(pLogConfig, pMSSQLServer, pGlobalState) + End Sub + + Public Function Run(pData As GetFileObjectRequest) As GetFileObjectResponse + Try + If Helpers.TestObjectIdExists(pData.ObjectId) = False Then + LogAndThrow("ObjectId does not exist!") + End If + + + Dim oSQL = $"SELECT * FROM VWIDB_FILE_OBJECT WHERE IDB_OBJ_ID = {pData.ObjectId}" + Dim oTable = Database.GetDatatable(oSQL) + + If oTable Is Nothing OrElse oTable.Rows.Count = 0 Then + LogAndThrow("Error while getting FileObject data!") + End If + + Dim oRow As DataRow = oTable.First() + Dim oFileObject As New FileObject With { + .ObjectId = pData.ObjectId, + .FileHash = oRow.ItemEx("FILE_HASH", ""), + .FileSize = oRow.ItemEx(Of Long)("FILE_SIZE", 0) + } + + Return New GetFileObjectResponse(oFileObject) + + Catch ex As Exception + Logger.Error(ex) + Return New GetFileObjectResponse(ex) + + End Try + End Function + End Class + +End Namespace \ No newline at end of file diff --git a/Service.EDMIService/Methods/GetFileObject/GetFileObjectRequest.vb b/Service.EDMIService/Methods/GetFileObject/GetFileObjectRequest.vb new file mode 100644 index 00000000..b81cf131 --- /dev/null +++ b/Service.EDMIService/Methods/GetFileObject/GetFileObjectRequest.vb @@ -0,0 +1,12 @@ +Imports System.Runtime.Serialization + +Namespace Methods.GetFileObject + + + Public Class GetFileObjectRequest + + Public Property ObjectId As Long + End Class + +End Namespace + diff --git a/Service.EDMIService/Methods/GetFileObject/GetFileObjectResponse.vb b/Service.EDMIService/Methods/GetFileObject/GetFileObjectResponse.vb new file mode 100644 index 00000000..70b7b41c --- /dev/null +++ b/Service.EDMIService/Methods/GetFileObject/GetFileObjectResponse.vb @@ -0,0 +1,21 @@ +Imports System.Runtime.Serialization + +Namespace Methods.GetFileObject + + + Public Class GetFileObjectResponse + Inherits Messages.BaseResponse + + + Public Property FileObject As FileObject + + Public Sub New(pFileObject As FileObject) + MyBase.New() + FileObject = pFileObject + End Sub + + Public Sub New(pException As Exception, Optional pDetails As String = "") + MyBase.New(pException, pDetails) + End Sub + End Class +End Namespace