diff --git a/GUIs.ZooFlow/Globix/frmGlobix_Index.vb b/GUIs.ZooFlow/Globix/frmGlobix_Index.vb index f7a62d04..49847bed 100644 --- a/GUIs.ZooFlow/Globix/frmGlobix_Index.vb +++ b/GUIs.ZooFlow/Globix/frmGlobix_Index.vb @@ -1194,6 +1194,8 @@ Public Class frmGlobix_Index NI_TITLE = "Error Globix-Import" NI_MESSAGE = "The import was not successful - Check LogFile" End If + + MsgBox(NI_MESSAGE, MsgBoxStyle.Critical, NI_TITLE) End If 'False oder True zurückgeben diff --git a/GUIs.ZooFlow/frmtest.vb b/GUIs.ZooFlow/frmtest.vb index 1a973fa8..d92a8524 100644 --- a/GUIs.ZooFlow/frmtest.vb +++ b/GUIs.ZooFlow/frmtest.vb @@ -36,7 +36,7 @@ Public Class frmtest Using oMemoryStream As New MemoryStream oStream.CopyTo(oMemoryStream) Dim oContents As Byte() = oMemoryStream.ToArray() - oResult = Await My.Application.Service.Client.ImportFileObjectAsync(oContents, My.Application.User.UserName, txtIDB_OBJ_ID.Text, 1, txtIDBFOPath.Text) + oResult = Await My.Application.Service.Client.ImportFileObjectAsync(oContents, My.Application.User.UserName, txtIDB_OBJ_ID.Text, "WORK", txtIDBFOPath.Text) End Using End Using @@ -103,26 +103,25 @@ Public Class frmtest txtFile2Import.Text = OpenFileDialog1.FileName - Using oStream As New FileStream(txtFile2Import.Text, FileMode.Open, FileAccess.Read) - Using oMemoryStream As New MemoryStream - oStream.CopyTo(oMemoryStream) - Dim oContents As Byte() = oMemoryStream.ToArray() - oResult = Await My.Application.Service.Client.ImportFileAsync( - txtFile2Import.Text, - Environment.UserName, - Date.Now, - "WORK", - 1, - "DEFAULT", - New Client.ImportFileOptions With { - .KeepExtension = True - } - ) - MsgBox($"File saved to: [{oResult}]") - 'oResult = Await My.Application.Service.Client.ImportFileObjectAsync(oContents, My.Application.User.UserName, txtIDB_OBJ_ID.Text, 1, txtIDBFOPath.Text) - End Using - End Using + oResult = Await My.Application.Service.Client.NewFileAsync( + txtFile2Import.Text, + Environment.UserName, + Date.Now, + "WORK", + "DEFAULT", + New Client.ImportFileOptions With { + .KeepExtension = True + } + ) + + MsgBox($"File saved to: [{oResult}]") + 'oResult = Await My.Application.Service.Client.ImportFileObjectAsync(oContents, My.Application.User.UserName, txtIDB_OBJ_ID.Text, 1, txtIDBFOPath.Text) + + End Sub + + Private Sub frmtest_Load(sender As Object, e As EventArgs) Handles MyBase.Load + End Sub End Class \ No newline at end of file diff --git a/Modules.EDMIAPI/Client.vb b/Modules.EDMIAPI/Client.vb index 99f3983d..32bfaab7 100644 --- a/Modules.EDMIAPI/Client.vb +++ b/Modules.EDMIAPI/Client.vb @@ -78,20 +78,38 @@ Public Class Client End Try End Function + ''' + ''' Import options for NewFileAsync + ''' Public Class ImportFileOptions Public KeepExtension As Boolean End Class ''' - ''' Imports a file by filename + ''' TODO: Platzhalter ''' - ''' A document object - Public Async Function ImportFileAsync(pFilePath As String, pWho As String, pWhen As Date, pObjectStoreType As String, pObjectStoreId As Long, pBusinessEntity As String, ImportOptions As ImportFileOptions) As Task(Of String) - 'pObjectId As Long, pStoreType As String, pDate As String, pExtension As String, pKeepExtension As String - Dim oKindType = "DOC" + ''' + Public Async Function NewObjectAsync() As Task + End Function + + ''' + ''' Imports a file from a filepath, creating a IDB ObjectId and Filesystem Object + ''' + ''' Local filepath to a file. + ''' Windows username of the user responsible for the import. + ''' Date when the file was imported. Can be in the past. + ''' Type of ObjectStore. Can be WORK or ARCHIVE. + ''' Business entity that the new file object should belong to. + ''' Other file import options + ''' The ObjectId of the newly generated filesystem object + ''' When local filepath was not found + ''' When there was a error in the Service + Public Async Function NewFileAsync(pFilePath As String, pWho As String, pWhen As Date, pObjectStoreType As String, pBusinessEntity As String, ImportOptions As ImportFileOptions) As Task(Of Long) + Const oKindType = "DOC" + Try If File.Exists(pFilePath) = False Then - Throw New ApplicationException("ImportFileAsync: Path does not exist") + Throw New FileNotFoundException("ImportFileAsync: Path does not exist") End If Dim oFileInfo As New FileInfo(pFilePath) @@ -125,10 +143,10 @@ Public Class Client Dim oContents = oMemoryStream.ToArray() Dim oFileImportResponse = Await _channel.ImportFileIntoFileObjectAsync(New ImportFileIntoFileObjectRequest With { - .pIDBFilePath = oFilePathResponse.FileObjectPath, - .pIDB_OBJ_ID = oObjectIdResponse.ObjectId, - .pObjectStoreID = pObjectStoreId, - .pWho = pWho, + .FilePath = oFilePathResponse.FileObjectPath, + .ObjectId = oObjectIdResponse.ObjectId, + .ObjectStoreType = pObjectStoreType, + .Who = pWho, .Contents = oContents }) @@ -138,39 +156,12 @@ Public Class Client End Using End Using - Return oFilePathResponse.FileObjectPath + Return oObjectIdResponse.ObjectId Catch ex As Exception _logger.Error(ex) Return Nothing End Try End Function - 'Public Async Function ImportFileAsync(FilePath As String, DocumentType As String, ObjectStoreId As Long, Optional RetentionDays As Integer = 0) As Task(Of Long) - ' Try - ' Dim oFileInfo As New FileInfo(FilePath) - ' If oFileInfo.Exists = False Then - ' Throw New FileNotFoundException("Cannot import non-existing file.", FilePath) - ' End If - - ' Using oStream As New FileStream(FilePath, FileMode.Open) - ' Dim oContents(oStream.Length) As Byte - ' Dim oBytesRead = Await oStream.ReadAsync(oContents, 0, oStream.Length) - ' Dim oData As New DocumentImportRequest() With { - ' .FileName = oFileInfo.Name, - ' .Contents = oContents, - ' .DocumentType = DocumentType, - ' .ObjectStoreId = ObjectStoreId, - ' .RetentionDays = RetentionDays - ' } - - ' Dim oResponse = Await _channel.ImportFileAsync(oData) - - ' Return oResponse.ObjectId - ' End Using - ' Catch ex As Exception - ' _logger.Error(ex) - ' Throw ex - ' End Try - 'End Function Public Function CreateObjectId(pKindType As String, pWho As String, pBusinessEntity As String) As Long Try @@ -209,14 +200,14 @@ Public Class Client End Try End Function - Public Async Function ImportFileObjectAsync(pContent As Byte(), pWho As String, pObjectId As Long, pObjectStoreID As Short, pFileObjectPath As String) As Task(Of Boolean) + Public Async Function ImportFileObjectAsync(pContent As Byte(), pWho As String, pObjectId As Long, pObjectStoreType As String, pFileObjectPath As String) As Task(Of Boolean) Try Dim oData As New ImportFileIntoFileObjectRequest() With { .Contents = pContent, - .pWho = pWho, - .pIDBFilePath = pFileObjectPath, - .pIDB_OBJ_ID = pObjectId, - .pObjectStoreID = pObjectStoreID + .Who = pWho, + .FilePath = pFileObjectPath, + .ObjectId = pObjectId, + .ObjectStoreType = pObjectStoreType } Dim oResponse = Await _channel.ImportFileIntoFileObjectAsync(oData) diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd index 07de0764..d913a0c6 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd @@ -264,10 +264,10 @@ - - - - + + + + diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb index 95fd2b6c..0cd31dc0 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb @@ -755,176 +755,176 @@ Namespace EDMIServiceReference _ Public Contents() As Byte - - _ - Public pIDBFilePath As String - - _ - Public pIDB_OBJ_ID As Long - - _ - Public pObjectStoreID As Integer - - _ - Public pWho As String - + + + Public FilePath As String + + + Public ObjectId As Long + + + Public ObjectStoreType As String + + + Public Who As String + Public Sub New() MyBase.New End Sub - - Public Sub New(ByVal Contents() As Byte, ByVal pIDBFilePath As String, ByVal pIDB_OBJ_ID As Long, ByVal pObjectStoreID As Integer, ByVal pWho As String) + + Public Sub New(ByVal Contents() As Byte, ByVal FilePath As String, ByVal ObjectId As Long, ByVal ObjectStoreType As String, ByVal Who As String) MyBase.New Me.Contents = Contents - Me.pIDBFilePath = pIDBFilePath - Me.pIDB_OBJ_ID = pIDB_OBJ_ID - Me.pObjectStoreID = pObjectStoreID - Me.pWho = pWho + Me.FilePath = FilePath + Me.ObjectId = ObjectId + Me.ObjectStoreType = ObjectStoreType + Me.Who = Who End Sub End Class - - _ + + Partial Public Class ImportFileIntoFileObjectResponse - - _ + + Public Result As Boolean - + Public Sub New() MyBase.New End Sub - + Public Sub New(ByVal Result As Boolean) MyBase.New Me.Result = Result End Sub End Class - - _ + + Public Interface IEDMIServiceChannel Inherits EDMIServiceReference.IEDMIService, System.ServiceModel.IClientChannel End Interface - - _ + + Partial Public Class EDMIServiceClient Inherits System.ServiceModel.ClientBase(Of EDMIServiceReference.IEDMIService) Implements EDMIServiceReference.IEDMIService - + Public Sub New() MyBase.New End Sub - + Public Sub New(ByVal endpointConfigurationName As String) MyBase.New(endpointConfigurationName) End Sub - + Public Sub New(ByVal endpointConfigurationName As String, ByVal remoteAddress As String) MyBase.New(endpointConfigurationName, remoteAddress) End Sub - + Public Sub New(ByVal endpointConfigurationName As String, ByVal remoteAddress As System.ServiceModel.EndpointAddress) MyBase.New(endpointConfigurationName, remoteAddress) End Sub - + Public Sub New(ByVal binding As System.ServiceModel.Channels.Binding, ByVal remoteAddress As System.ServiceModel.EndpointAddress) MyBase.New(binding, remoteAddress) End Sub - + Public Function Heartbeat() As Boolean Implements EDMIServiceReference.IEDMIService.Heartbeat Return MyBase.Channel.Heartbeat End Function - + Public Function HeartbeatAsync() As System.Threading.Tasks.Task(Of Boolean) Implements EDMIServiceReference.IEDMIService.HeartbeatAsync Return MyBase.Channel.HeartbeatAsync End Function - + Public Function ReturnDatatableFromCache(ByVal Name As String, ByVal FilterExpression As String, ByVal SortByColumn As String) As EDMIServiceReference.TableResult Implements EDMIServiceReference.IEDMIService.ReturnDatatableFromCache Return MyBase.Channel.ReturnDatatableFromCache(Name, FilterExpression, SortByColumn) End Function - + Public Function ReturnDatatableFromCacheAsync(ByVal Name As String, ByVal FilterExpression As String, ByVal SortByColumn As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult) Implements EDMIServiceReference.IEDMIService.ReturnDatatableFromCacheAsync Return MyBase.Channel.ReturnDatatableFromCacheAsync(Name, FilterExpression, SortByColumn) End Function - + Public Function ReturnDatatable_Firebird(ByVal SQL As String) As EDMIServiceReference.TableResult Implements EDMIServiceReference.IEDMIService.ReturnDatatable_Firebird Return MyBase.Channel.ReturnDatatable_Firebird(SQL) End Function - + Public Function ReturnDatatable_FirebirdAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult) Implements EDMIServiceReference.IEDMIService.ReturnDatatable_FirebirdAsync Return MyBase.Channel.ReturnDatatable_FirebirdAsync(SQL) End Function - + Public Function ReturnScalar_Firebird(ByVal SQL As String) As EDMIServiceReference.ScalarResult Implements EDMIServiceReference.IEDMIService.ReturnScalar_Firebird Return MyBase.Channel.ReturnScalar_Firebird(SQL) End Function - + Public Function ReturnScalar_FirebirdAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.ScalarResult) Implements EDMIServiceReference.IEDMIService.ReturnScalar_FirebirdAsync Return MyBase.Channel.ReturnScalar_FirebirdAsync(SQL) End Function - + Public Function ExecuteNonQuery_Firebird(ByVal SQL As String) As EDMIServiceReference.NonQueryResult Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery_Firebird Return MyBase.Channel.ExecuteNonQuery_Firebird(SQL) End Function - + Public Function ExecuteNonQuery_FirebirdAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NonQueryResult) Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery_FirebirdAsync Return MyBase.Channel.ExecuteNonQuery_FirebirdAsync(SQL) End Function - + Public Function ReturnDatatable_MSSQL_IDB(ByVal SQL As String) As EDMIServiceReference.TableResult Implements EDMIServiceReference.IEDMIService.ReturnDatatable_MSSQL_IDB Return MyBase.Channel.ReturnDatatable_MSSQL_IDB(SQL) End Function - + Public Function ReturnDatatable_MSSQL_IDBAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult) Implements EDMIServiceReference.IEDMIService.ReturnDatatable_MSSQL_IDBAsync Return MyBase.Channel.ReturnDatatable_MSSQL_IDBAsync(SQL) End Function - + Public Function ReturnScalar_MSSQL_IDB(ByVal SQL As String) As EDMIServiceReference.ScalarResult Implements EDMIServiceReference.IEDMIService.ReturnScalar_MSSQL_IDB Return MyBase.Channel.ReturnScalar_MSSQL_IDB(SQL) End Function - + Public Function ReturnScalar_MSSQL_IDBAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.ScalarResult) Implements EDMIServiceReference.IEDMIService.ReturnScalar_MSSQL_IDBAsync Return MyBase.Channel.ReturnScalar_MSSQL_IDBAsync(SQL) End Function - + Public Function ExecuteNonQuery_MSSQL_IDB(ByVal SQL As String) As EDMIServiceReference.NonQueryResult Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery_MSSQL_IDB Return MyBase.Channel.ExecuteNonQuery_MSSQL_IDB(SQL) End Function - + Public Function ExecuteNonQuery_MSSQL_IDBAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NonQueryResult) Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery_MSSQL_IDBAsync Return MyBase.Channel.ExecuteNonQuery_MSSQL_IDBAsync(SQL) End Function - + Public Function ReturnDatatable_MSSQL_ECM(ByVal SQL As String) As EDMIServiceReference.TableResult Implements EDMIServiceReference.IEDMIService.ReturnDatatable_MSSQL_ECM Return MyBase.Channel.ReturnDatatable_MSSQL_ECM(SQL) End Function - + Public Function ReturnDatatable_MSSQL_ECMAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.TableResult) Implements EDMIServiceReference.IEDMIService.ReturnDatatable_MSSQL_ECMAsync Return MyBase.Channel.ReturnDatatable_MSSQL_ECMAsync(SQL) End Function - + Public Function ReturnScalar_MSSQL_ECM(ByVal SQL As String) As EDMIServiceReference.ScalarResult Implements EDMIServiceReference.IEDMIService.ReturnScalar_MSSQL_ECM Return MyBase.Channel.ReturnScalar_MSSQL_ECM(SQL) End Function - + Public Function ReturnScalar_MSSQL_ECMAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.ScalarResult) Implements EDMIServiceReference.IEDMIService.ReturnScalar_MSSQL_ECMAsync Return MyBase.Channel.ReturnScalar_MSSQL_ECMAsync(SQL) End Function - + Public Function ExecuteNonQuery_MSSQL_ECM(ByVal SQL As String) As EDMIServiceReference.NonQueryResult Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery_MSSQL_ECM Return MyBase.Channel.ExecuteNonQuery_MSSQL_ECM(SQL) End Function - + Public Function ExecuteNonQuery_MSSQL_ECMAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NonQueryResult) Implements EDMIServiceReference.IEDMIService.ExecuteNonQuery_MSSQL_ECMAsync Return MyBase.Channel.ExecuteNonQuery_MSSQL_ECMAsync(SQL) End Function - - _ + + Function EDMIServiceReference_IEDMIService_ImportFile(ByVal request As EDMIServiceReference.DocumentImportRequest) As EDMIServiceReference.DocumentImportResponse Implements EDMIServiceReference.IEDMIService.ImportFile Return MyBase.Channel.ImportFile(request) End Function - + Public Function ImportFile(ByVal Contents() As Byte, ByVal DocumentType As String, ByVal FileName As String, ByVal ObjectStoreId As Long, ByVal RetentionDays As Long) As Long Dim inValue As EDMIServiceReference.DocumentImportRequest = New EDMIServiceReference.DocumentImportRequest() inValue.Contents = Contents @@ -932,15 +932,15 @@ Namespace EDMIServiceReference inValue.FileName = FileName inValue.ObjectStoreId = ObjectStoreId inValue.RetentionDays = RetentionDays - Dim retVal As EDMIServiceReference.DocumentImportResponse = CType(Me,EDMIServiceReference.IEDMIService).ImportFile(inValue) + Dim retVal As EDMIServiceReference.DocumentImportResponse = CType(Me, EDMIServiceReference.IEDMIService).ImportFile(inValue) Return retVal.ObjectId End Function - - _ + + Function EDMIServiceReference_IEDMIService_ImportFileAsync(ByVal request As EDMIServiceReference.DocumentImportRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentImportResponse) Implements EDMIServiceReference.IEDMIService.ImportFileAsync Return MyBase.Channel.ImportFileAsync(request) End Function - + Public Function ImportFileAsync(ByVal Contents() As Byte, ByVal DocumentType As String, ByVal FileName As String, ByVal ObjectStoreId As Long, ByVal RetentionDays As Long) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentImportResponse) Dim inValue As EDMIServiceReference.DocumentImportRequest = New EDMIServiceReference.DocumentImportRequest() inValue.Contents = Contents @@ -948,104 +948,104 @@ Namespace EDMIServiceReference inValue.FileName = FileName inValue.ObjectStoreId = ObjectStoreId inValue.RetentionDays = RetentionDays - Return CType(Me,EDMIServiceReference.IEDMIService).ImportFileAsync(inValue) + Return CType(Me, EDMIServiceReference.IEDMIService).ImportFileAsync(inValue) End Function - - _ + + Function EDMIServiceReference_IEDMIService_GetFileByObjectId(ByVal request As EDMIServiceReference.DocumentStreamRequest) As EDMIServiceReference.DocumentStreamResponse Implements EDMIServiceReference.IEDMIService.GetFileByObjectId Return MyBase.Channel.GetFileByObjectId(request) End Function - + Public Function GetFileByObjectId(ByVal ObjectId As Long, ByRef FileContents As System.IO.Stream) As String Dim inValue As EDMIServiceReference.DocumentStreamRequest = New EDMIServiceReference.DocumentStreamRequest() inValue.ObjectId = ObjectId - Dim retVal As EDMIServiceReference.DocumentStreamResponse = CType(Me,EDMIServiceReference.IEDMIService).GetFileByObjectId(inValue) + Dim retVal As EDMIServiceReference.DocumentStreamResponse = CType(Me, EDMIServiceReference.IEDMIService).GetFileByObjectId(inValue) FileContents = retVal.FileContents Return retVal.FileName End Function - - _ + + Function EDMIServiceReference_IEDMIService_GetFileByObjectIdAsync(ByVal request As EDMIServiceReference.DocumentStreamRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentStreamResponse) Implements EDMIServiceReference.IEDMIService.GetFileByObjectIdAsync Return MyBase.Channel.GetFileByObjectIdAsync(request) End Function - + Public Function GetFileByObjectIdAsync(ByVal ObjectId As Long) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentStreamResponse) Dim inValue As EDMIServiceReference.DocumentStreamRequest = New EDMIServiceReference.DocumentStreamRequest() inValue.ObjectId = ObjectId - Return CType(Me,EDMIServiceReference.IEDMIService).GetFileByObjectIdAsync(inValue) + Return CType(Me, EDMIServiceReference.IEDMIService).GetFileByObjectIdAsync(inValue) End Function - - _ + + Function EDMIServiceReference_IEDMIService_GetFileInfoByObjectId(ByVal request As EDMIServiceReference.DocumentInfoRequest) As EDMIServiceReference.DocumentInfoResponse Implements EDMIServiceReference.IEDMIService.GetFileInfoByObjectId Return MyBase.Channel.GetFileInfoByObjectId(request) End Function - + Public Function GetFileInfoByObjectId(ByVal ObjectId As Long, ByVal UserId As Long, ByRef FullPath As String) As EDMIServiceReference.RightsAccessRight Dim inValue As EDMIServiceReference.DocumentInfoRequest = New EDMIServiceReference.DocumentInfoRequest() inValue.ObjectId = ObjectId inValue.UserId = UserId - Dim retVal As EDMIServiceReference.DocumentInfoResponse = CType(Me,EDMIServiceReference.IEDMIService).GetFileInfoByObjectId(inValue) + Dim retVal As EDMIServiceReference.DocumentInfoResponse = CType(Me, EDMIServiceReference.IEDMIService).GetFileInfoByObjectId(inValue) FullPath = retVal.FullPath Return retVal.FileRight End Function - + Public Function GetFileInfoByObjectIdAsync(ByVal request As EDMIServiceReference.DocumentInfoRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentInfoResponse) Implements EDMIServiceReference.IEDMIService.GetFileInfoByObjectIdAsync Return MyBase.Channel.GetFileInfoByObjectIdAsync(request) End Function - - _ + + Function EDMIServiceReference_IEDMIService_ListFilesForUser(ByVal request As EDMIServiceReference.ListFilesForUserRequest) As EDMIServiceReference.DocumentListResponse Implements EDMIServiceReference.IEDMIService.ListFilesForUser Return MyBase.Channel.ListFilesForUser(request) End Function - + Public Function ListFilesForUser() As System.Data.DataTable Dim inValue As EDMIServiceReference.ListFilesForUserRequest = New EDMIServiceReference.ListFilesForUserRequest() - Dim retVal As EDMIServiceReference.DocumentListResponse = CType(Me,EDMIServiceReference.IEDMIService).ListFilesForUser(inValue) + Dim retVal As EDMIServiceReference.DocumentListResponse = CType(Me, EDMIServiceReference.IEDMIService).ListFilesForUser(inValue) Return retVal.Datatable End Function - - _ + + Function EDMIServiceReference_IEDMIService_ListFilesForUserAsync(ByVal request As EDMIServiceReference.ListFilesForUserRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentListResponse) Implements EDMIServiceReference.IEDMIService.ListFilesForUserAsync Return MyBase.Channel.ListFilesForUserAsync(request) End Function - + Public Function ListFilesForUserAsync() As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentListResponse) Dim inValue As EDMIServiceReference.ListFilesForUserRequest = New EDMIServiceReference.ListFilesForUserRequest() - Return CType(Me,EDMIServiceReference.IEDMIService).ListFilesForUserAsync(inValue) + Return CType(Me, EDMIServiceReference.IEDMIService).ListFilesForUserAsync(inValue) End Function - - _ + + Function EDMIServiceReference_IEDMIService_NewObjectId(ByVal request As EDMIServiceReference.NewObjectIdRequest) As EDMIServiceReference.NewObjectIdResponse Implements EDMIServiceReference.IEDMIService.NewObjectId Return MyBase.Channel.NewObjectId(request) End Function - + Public Function NewObjectId(ByVal BusinessEntity As String, ByVal KindType As String, ByVal Who As String) As Long Dim inValue As EDMIServiceReference.NewObjectIdRequest = New EDMIServiceReference.NewObjectIdRequest() inValue.BusinessEntity = BusinessEntity inValue.KindType = KindType inValue.Who = Who - Dim retVal As EDMIServiceReference.NewObjectIdResponse = CType(Me,EDMIServiceReference.IEDMIService).NewObjectId(inValue) + Dim retVal As EDMIServiceReference.NewObjectIdResponse = CType(Me, EDMIServiceReference.IEDMIService).NewObjectId(inValue) Return retVal.ObjectId End Function - - _ + + Function EDMIServiceReference_IEDMIService_NewObjectIdAsync(ByVal request As EDMIServiceReference.NewObjectIdRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.NewObjectIdResponse) Implements EDMIServiceReference.IEDMIService.NewObjectIdAsync Return MyBase.Channel.NewObjectIdAsync(request) End Function - + Public Function NewObjectIdAsync(ByVal BusinessEntity As String, ByVal KindType As String, ByVal Who As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NewObjectIdResponse) Dim inValue As EDMIServiceReference.NewObjectIdRequest = New EDMIServiceReference.NewObjectIdRequest() inValue.BusinessEntity = BusinessEntity inValue.KindType = KindType inValue.Who = Who - Return CType(Me,EDMIServiceReference.IEDMIService).NewObjectIdAsync(inValue) + Return CType(Me, EDMIServiceReference.IEDMIService).NewObjectIdAsync(inValue) End Function - - _ + + Function EDMIServiceReference_IEDMIService_NewFileObject(ByVal request As EDMIServiceReference.NewFileObjectRequest) As EDMIServiceReference.NewFileObjectResponse Implements EDMIServiceReference.IEDMIService.NewFileObject Return MyBase.Channel.NewFileObject(request) End Function - + Public Function NewFileObject(ByVal DateImported As Date, ByVal Extension As String, ByVal KeepExtension As Boolean, ByVal ObjectId As Long, ByVal StoreType As String) As String Dim inValue As EDMIServiceReference.NewFileObjectRequest = New EDMIServiceReference.NewFileObjectRequest() inValue.DateImported = DateImported @@ -1053,15 +1053,15 @@ Namespace EDMIServiceReference inValue.KeepExtension = KeepExtension inValue.ObjectId = ObjectId inValue.StoreType = StoreType - Dim retVal As EDMIServiceReference.NewFileObjectResponse = CType(Me,EDMIServiceReference.IEDMIService).NewFileObject(inValue) + Dim retVal As EDMIServiceReference.NewFileObjectResponse = CType(Me, EDMIServiceReference.IEDMIService).NewFileObject(inValue) Return retVal.FileObjectPath End Function - - _ + + Function EDMIServiceReference_IEDMIService_NewFileObjectAsync(ByVal request As EDMIServiceReference.NewFileObjectRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.NewFileObjectResponse) Implements EDMIServiceReference.IEDMIService.NewFileObjectAsync Return MyBase.Channel.NewFileObjectAsync(request) End Function - + Public Function NewFileObjectAsync(ByVal DateImported As Date, ByVal Extension As String, ByVal KeepExtension As Boolean, ByVal ObjectId As Long, ByVal StoreType As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NewFileObjectResponse) Dim inValue As EDMIServiceReference.NewFileObjectRequest = New EDMIServiceReference.NewFileObjectRequest() inValue.DateImported = DateImported @@ -1069,37 +1069,37 @@ Namespace EDMIServiceReference inValue.KeepExtension = KeepExtension inValue.ObjectId = ObjectId inValue.StoreType = StoreType - Return CType(Me,EDMIServiceReference.IEDMIService).NewFileObjectAsync(inValue) + Return CType(Me, EDMIServiceReference.IEDMIService).NewFileObjectAsync(inValue) End Function - - _ + + Function EDMIServiceReference_IEDMIService_ImportFileIntoFileObject(ByVal request As EDMIServiceReference.ImportFileIntoFileObjectRequest) As EDMIServiceReference.ImportFileIntoFileObjectResponse Implements EDMIServiceReference.IEDMIService.ImportFileIntoFileObject Return MyBase.Channel.ImportFileIntoFileObject(request) End Function - - Public Function ImportFileIntoFileObject(ByVal Contents() As Byte, ByVal pIDBFilePath As String, ByVal pIDB_OBJ_ID As Long, ByVal pObjectStoreID As Integer, ByVal pWho As String) As Boolean + + Public Function ImportFileIntoFileObject(ByVal Contents() As Byte, ByVal FilePath As String, ByVal ObjectId As Long, ByVal ObjectStoreType As String, ByVal Who As String) As Boolean Dim inValue As EDMIServiceReference.ImportFileIntoFileObjectRequest = New EDMIServiceReference.ImportFileIntoFileObjectRequest() inValue.Contents = Contents - inValue.pIDBFilePath = pIDBFilePath - inValue.pIDB_OBJ_ID = pIDB_OBJ_ID - inValue.pObjectStoreID = pObjectStoreID - inValue.pWho = pWho - Dim retVal As EDMIServiceReference.ImportFileIntoFileObjectResponse = CType(Me,EDMIServiceReference.IEDMIService).ImportFileIntoFileObject(inValue) + inValue.FilePath = FilePath + inValue.ObjectId = ObjectId + inValue.ObjectStoreType = ObjectStoreType + inValue.Who = Who + Dim retVal As EDMIServiceReference.ImportFileIntoFileObjectResponse = CType(Me, EDMIServiceReference.IEDMIService).ImportFileIntoFileObject(inValue) Return retVal.Result End Function - - _ + + Function EDMIServiceReference_IEDMIService_ImportFileIntoFileObjectAsync(ByVal request As EDMIServiceReference.ImportFileIntoFileObjectRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.ImportFileIntoFileObjectResponse) Implements EDMIServiceReference.IEDMIService.ImportFileIntoFileObjectAsync Return MyBase.Channel.ImportFileIntoFileObjectAsync(request) End Function - - Public Function ImportFileIntoFileObjectAsync(ByVal Contents() As Byte, ByVal pIDBFilePath As String, ByVal pIDB_OBJ_ID As Long, ByVal pObjectStoreID As Integer, ByVal pWho As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.ImportFileIntoFileObjectResponse) + + Public Function ImportFileIntoFileObjectAsync(ByVal Contents() As Byte, ByVal FilePath As String, ByVal ObjectId As Long, ByVal ObjectStoreType As String, ByVal Who As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.ImportFileIntoFileObjectResponse) Dim inValue As EDMIServiceReference.ImportFileIntoFileObjectRequest = New EDMIServiceReference.ImportFileIntoFileObjectRequest() inValue.Contents = Contents - inValue.pIDBFilePath = pIDBFilePath - inValue.pIDB_OBJ_ID = pIDB_OBJ_ID - inValue.pObjectStoreID = pObjectStoreID - inValue.pWho = pWho + inValue.FilePath = FilePath + inValue.ObjectId = ObjectId + inValue.ObjectStoreType = ObjectStoreType + inValue.Who = Who Return CType(Me,EDMIServiceReference.IEDMIService).ImportFileIntoFileObjectAsync(inValue) End Function End Class diff --git a/Service.EDMIService/EDMIService.vb b/Service.EDMIService/EDMIService.vb index 01928de5..a5b14926 100644 --- a/Service.EDMIService/EDMIService.vb +++ b/Service.EDMIService/EDMIService.vb @@ -580,12 +580,17 @@ Public Class EDMIService End Function Public Function ImportFileIntoFileObject(Data As ImportFileIntoFileObjectRequest) As ImportFileIntoFileObjectResponse Implements IEDMIService.ImportFileIntoFileObject - Dim oObjectStore = GlobalState.ObjectStores.First() - Dim oEDMIPath = New EDMI.File.Path(LogConfig, oObjectStore.Path) - Try - Using oStream = New FileStream(Data.pIDBFilePath, FileMode.Create, FileAccess.Write) - _Logger.Info("ImportFile: Saving file to path [{0}]", Data.pIDBFilePath) + Dim oObjectStore = GlobalState.ObjectStores. + Where(Function(o) o.Title = Data.ObjectStoreType). + FirstOrDefault() + + If oObjectStore Is Nothing Then + Throw New KeyNotFoundException($"ObjectStore [{Data.ObjectStoreType}] was not found.") + End If + + Using oStream = New FileStream(Data.FilePath, FileMode.Create, FileAccess.Write) + _Logger.Info("ImportFile: Saving file to path [{0}]", Data.FilePath) _Logger.Info("ImportFile: Content Length: {0}", Data.Contents.Length) oStream.Write(Data.Contents, 0, Data.Contents.Length) @@ -594,7 +599,7 @@ Public Class EDMIService End Using ' insert into db - Dim oSQL As String = $"EXEC PRIDB_NEW_IDBFO '{Data.pIDBFilePath}','{Data.pWho}','{Data.pIDB_OBJ_ID}',{Data.pObjectStoreID}" + Dim oSQL As String = $"EXEC PRIDB_NEW_IDBFO '{Data.FilePath}','{Data.Who}','{Data.ObjectId}',{oObjectStore.Id}" Dim oResult As Boolean = MSSQL_IDB.ExecuteNonQuery(oSQL) Return New ImportFileIntoFileObjectResponse() With {.Result = oResult} diff --git a/Service.EDMIService/Helpers/Messages.vb b/Service.EDMIService/Helpers/Messages.vb index 7347a1f6..0387607f 100644 --- a/Service.EDMIService/Helpers/Messages.vb +++ b/Service.EDMIService/Helpers/Messages.vb @@ -32,13 +32,13 @@ Namespace Messages Public Contents() As Byte - Public pWho As String + Public Who As String - Public pIDBFilePath As String + Public FilePath As String - Public pIDB_OBJ_ID As Long + Public ObjectId As Long - Public pObjectStoreID As Integer + Public ObjectStoreType As String End Class diff --git a/Service.EDMIService/Scheduler/DatatableJob.vb b/Service.EDMIService/Scheduler/DatatableJob.vb index da42a1e2..8a09c2d5 100644 --- a/Service.EDMIService/Scheduler/DatatableJob.vb +++ b/Service.EDMIService/Scheduler/DatatableJob.vb @@ -18,7 +18,7 @@ Public Class DatatableJob Dim oLogConfig As LogConfig = oJobData.Item("LogConfig") Dim oCronJobId As Integer = oJobData.Item("CronJobId") Dim oCronJobTitle As String = oJobData.Item("CronJobTitle") - Dim oLogger As Logger = oLogConfig.GetLogger() + Dim oLogger As Logger = oLogConfig.GetLoggerFor("Scheduler") Dim oResult As New JobResult() diff --git a/Service.EDMIService/Scheduler/JobListener.vb b/Service.EDMIService/Scheduler/JobListener.vb index 9fabc4bf..e982a6e2 100644 --- a/Service.EDMIService/Scheduler/JobListener.vb +++ b/Service.EDMIService/Scheduler/JobListener.vb @@ -21,7 +21,7 @@ Public Class JobListener MyBase.New() _LogConfig = LogConfig - _Logger = LogConfig.GetLogger() + _Logger = LogConfig.GetLoggerFor("Scheduler") _MSSQL = MSSQL Dataset = ResultDataSet End Sub diff --git a/Service.EDMIService/Scheduler/Scheduler.vb b/Service.EDMIService/Scheduler/Scheduler.vb index 45fc2d16..6ef93270 100644 --- a/Service.EDMIService/Scheduler/Scheduler.vb +++ b/Service.EDMIService/Scheduler/Scheduler.vb @@ -108,8 +108,6 @@ Public Class Scheduler End Sub - - Public Async Function GetCronJobs() As Task(Of DataTable) Try Dim oSQL As String = "SELECT * FROM TBAPPSERV_CRON_JOB WHERE ACTIVE = 1"