From 62e4e409a6f824ceb2d9e388eda11a1588290e35 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Wed, 15 Apr 2020 12:09:01 +0200 Subject: [PATCH] WIP: EDMI Service --- GUIs.Test.EDMIBenchmark/Form1.vb | 8 +- ...iceReference.DocumentResultOld.datasource} | 4 +- ...eference.DocumentStreamResponse.datasource | 10 ++ .../DigitalData.Services.EDMIService.wsdl | 15 +- .../DigitalData.Services.EDMIService.xsd | 19 +-- .../DigitalData.Services.EDMIService1.xsd | 14 +- .../EDMIServiceReference/Reference.svcmap | 2 +- .../EDMIServiceReference/Reference.vb | 139 +++++++++++++----- .../EDMIServiceReference/service.wsdl | 5 +- Modules.EDMIAPI/Document.vb | 4 +- Modules.EDMIAPI/EDMI.API.vbproj | 5 +- Service.EDMIService/EDMIService.vb | 55 ++++--- Service.EDMIService/EDMIService.vbproj | 5 +- Service.EDMIService/IEDMIService.vb | 14 +- Service.EDMIService/Messages.vb | 22 +++ Service.EDMIService/Results/DocumentResult.vb | 7 +- ...ocumentResult2.vb => DocumentResultOld.vb} | 11 +- 17 files changed, 224 insertions(+), 115 deletions(-) rename Modules.EDMIAPI/Connected Services/EDMIServiceReference/{DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentResult2.datasource => DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentResultOld.datasource} (57%) create mode 100644 Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentStreamResponse.datasource create mode 100644 Service.EDMIService/Messages.vb rename Service.EDMIService/Results/{DocumentResult2.vb => DocumentResultOld.vb} (77%) diff --git a/GUIs.Test.EDMIBenchmark/Form1.vb b/GUIs.Test.EDMIBenchmark/Form1.vb index 2e95f562..b412c86a 100644 --- a/GUIs.Test.EDMIBenchmark/Form1.vb +++ b/GUIs.Test.EDMIBenchmark/Form1.vb @@ -52,7 +52,7 @@ Public Class Form1 Await oStream.ReadAsync(oContents, 0, oFileInfo.Length) End Using - Dim oResult As EDMIServiceReference.DocumentResult2 = Await _Channel.ImportFileAsync(oFileInfo.Name, oContents, Environment.UserName) + Dim oResult As EDMIServiceReference.DocumentResult = Await _Channel.ImportFileAsync(oFileInfo.Name, oContents, Environment.UserName) If oResult.OK Then listboxLog.Items.Add($"File [{oFileInfo.Name}] with Id [{oResult.Document.FileId}] imported!") Else @@ -121,14 +121,14 @@ Public Class Form1 Dim oObjectId As Integer = TextboxObejctId.EditValue - Dim oStream = Await _Channel.GetFileByObjectIdAsync(oObjectId) + Dim oResponse = Await _Channel.GetFileByObjectIdAsync(New EDMIServiceReference.DocumentStreamRequest() With {.ObjectId = oObjectId}) Dim oMemoryStream As New MemoryStream() - oStream.CopyTo(oMemoryStream) + oResponse.FileContents.CopyTo(oMemoryStream) oMemoryStream.Position = 0 listboxLog.Items.Add("Stream read!") - DocumentViewer1.LoadFile("textfile.png", oMemoryStream) + DocumentViewer1.LoadFile(oResponse.FileName, oMemoryStream) Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Uh oh!") End Try diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentResult2.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentResultOld.datasource similarity index 57% rename from Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentResult2.datasource rename to Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentResultOld.datasource index e6f36b46..3c56e249 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentResult2.datasource +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentResultOld.datasource @@ -5,6 +5,6 @@ Renaming the file extension or editing the content of this file may cause the file to be unrecognizable by the program. --> - - DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentResult2, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + + DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentResultOld, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentStreamResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentStreamResponse.datasource new file mode 100644 index 00000000..9c6b26fa --- /dev/null +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentStreamResponse.datasource @@ -0,0 +1,10 @@ + + + + DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentStreamResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl index 86e0dafe..554c690d 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl @@ -89,11 +89,14 @@ - - + + - - + + + + + @@ -155,8 +158,8 @@ - - + + diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd index c0472c46..78896d41 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd @@ -93,7 +93,7 @@ - + @@ -108,7 +108,7 @@ - + @@ -122,7 +122,7 @@ - + @@ -150,7 +150,7 @@ - + @@ -164,7 +164,7 @@ - + @@ -180,24 +180,25 @@ - + - + - + - + + diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService1.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService1.xsd index 3fc9564a..0c04d9a3 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService1.xsd +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService1.xsd @@ -49,7 +49,7 @@ - + @@ -60,26 +60,26 @@ - - + + - + - - + + - + diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap index 19190ce7..0dd586d8 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap @@ -30,7 +30,7 @@ - + diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb index c53993cf..1df41c22 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb @@ -22,8 +22,8 @@ Namespace EDMIServiceReference System.SerializableAttribute(), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ScalarResult)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NonQueryResult)), _ + System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentResultOld)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentResult)), _ - System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentResult2)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.IndexResult)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.TableResult))> _ Partial Public Class BaseResult @@ -92,9 +92,9 @@ Namespace EDMIServiceReference System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.TableResult)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.BaseResult)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NonQueryResult)), _ + System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentResultOld)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentResult)), _ - System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentResult2)), _ - System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentResult2.DocumentObject)), _ + System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentResult.DocumentObject)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.IndexResult)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(System.DBNull)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentObject))> _ @@ -128,9 +128,9 @@ Namespace EDMIServiceReference _ - Partial Public Class DocumentResult + Partial Public Class DocumentResultOld Inherits EDMIServiceReference.BaseResult Private ContentsField() As Byte @@ -181,14 +181,14 @@ Namespace EDMIServiceReference _ - Partial Public Class DocumentResult2 + Partial Public Class DocumentResult Inherits EDMIServiceReference.BaseResult Private ContentsField() As Byte - Private DocumentField As EDMIServiceReference.DocumentResult2.DocumentObject + Private DocumentField As EDMIServiceReference.DocumentResult.DocumentObject Private HasContentsField As Boolean @@ -206,7 +206,7 @@ Namespace EDMIServiceReference End Property _ - Public Property Document() As EDMIServiceReference.DocumentResult2.DocumentObject + Public Property Document() As EDMIServiceReference.DocumentResult.DocumentObject Get Return Me.DocumentField End Get @@ -233,7 +233,7 @@ Namespace EDMIServiceReference _ Partial Public Class DocumentObject Inherits Object @@ -462,22 +462,22 @@ Namespace EDMIServiceReference Function ExecuteNonQueryAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NonQueryResult) _ - Function NewFile(ByVal FileName As String, ByVal Contents() As Byte) As EDMIServiceReference.DocumentResult + Function NewFile(ByVal FileName As String, ByVal Contents() As Byte) As EDMIServiceReference.DocumentResultOld _ - Function NewFileAsync(ByVal FileName As String, ByVal Contents() As Byte) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResult) + Function NewFileAsync(ByVal FileName As String, ByVal Contents() As Byte) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResultOld) _ - Function UpdateFile(ByVal DocObject As EDMIServiceReference.DocumentObject, ByVal Contents() As Byte) As EDMIServiceReference.DocumentResult + Function UpdateFile(ByVal DocObject As EDMIServiceReference.DocumentObject, ByVal Contents() As Byte) As EDMIServiceReference.DocumentResultOld _ - Function UpdateFileAsync(ByVal DocObject As EDMIServiceReference.DocumentObject, ByVal Contents() As Byte) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResult) + Function UpdateFileAsync(ByVal DocObject As EDMIServiceReference.DocumentObject, ByVal Contents() As Byte) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResultOld) _ - Function GetFile(ByVal DocObject As EDMIServiceReference.DocumentObject) As EDMIServiceReference.DocumentResult + Function GetFile(ByVal DocObject As EDMIServiceReference.DocumentObject) As EDMIServiceReference.DocumentResultOld _ - Function GetFileAsync(ByVal DocObject As EDMIServiceReference.DocumentObject) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResult) + Function GetFileAsync(ByVal DocObject As EDMIServiceReference.DocumentObject) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResultOld) _ Function DeleteFile(ByVal DocObject As EDMIServiceReference.DocumentObject) As Boolean @@ -487,31 +487,32 @@ Namespace EDMIServiceReference _ - Function GetDocumentByDocumentId(ByVal DocumentId As Long) As EDMIServiceReference.DocumentResult + Function GetDocumentByDocumentId(ByVal DocumentId As Long) As EDMIServiceReference.DocumentResultOld _ - Function GetDocumentByDocumentIdAsync(ByVal DocumentId As Long) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResult) + Function GetDocumentByDocumentIdAsync(ByVal DocumentId As Long) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResultOld) _ - Function GetDocumentByContainerId(ByVal ContainerId As String) As EDMIServiceReference.DocumentResult + Function GetDocumentByContainerId(ByVal ContainerId As String) As EDMIServiceReference.DocumentResultOld _ - Function GetDocumentByContainerIdAsync(ByVal ContainerId As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResult) + Function GetDocumentByContainerIdAsync(ByVal ContainerId As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResultOld) _ - Function ImportFile(ByVal FileName As String, ByVal Contents() As Byte, ByVal AddedWho As String) As EDMIServiceReference.DocumentResult2 + Function ImportFile(ByVal FileName As String, ByVal Contents() As Byte, ByVal AddedWho As String) As EDMIServiceReference.DocumentResult _ - Function ImportFileAsync(ByVal FileName As String, ByVal Contents() As Byte, ByVal AddedWho As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResult2) + Function ImportFileAsync(ByVal FileName As String, ByVal Contents() As Byte, ByVal AddedWho As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResult) + 'CODEGEN: Der Nachrichtenvertrag wird generiert, da der Wrappername (DocumentStreamRequest) von Nachricht "DocumentStreamRequest" nicht mit dem Standardwert (GetFileByObjectId) übereinstimmt. _ - Function GetFileByObjectId(ByVal ObjectId As Long) As System.IO.Stream + Function GetFileByObjectId(ByVal request As EDMIServiceReference.DocumentStreamRequest) As EDMIServiceReference.DocumentStreamResponse _ - Function GetFileByObjectIdAsync(ByVal ObjectId As Long) As System.Threading.Tasks.Task(Of System.IO.Stream) + Function GetFileByObjectIdAsync(ByVal request As EDMIServiceReference.DocumentStreamRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentStreamResponse) _ Function NewFileIndex(ByVal DocObject As EDMIServiceReference.DocumentObject, ByVal Syskey As String, ByVal LanguageCode As String, ByVal Value As String) As EDMIServiceReference.IndexResult @@ -520,6 +521,48 @@ Namespace EDMIServiceReference Function NewFileIndexAsync(ByVal DocObject As EDMIServiceReference.DocumentObject, ByVal Syskey As String, ByVal LanguageCode As String, ByVal Value As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.IndexResult) End Interface + _ + Partial Public Class DocumentStreamRequest + + _ + Public ObjectId As Long + + Public Sub New() + MyBase.New + End Sub + + Public Sub New(ByVal ObjectId As Long) + MyBase.New + Me.ObjectId = ObjectId + End Sub + End Class + + _ + Partial Public Class DocumentStreamResponse + + _ + Public FileName As String + + _ + Public FileContents As System.IO.Stream + + Public Sub New() + MyBase.New + End Sub + + Public Sub New(ByVal FileName As String, ByVal FileContents As System.IO.Stream) + MyBase.New + Me.FileName = FileName + Me.FileContents = FileContents + End Sub + End Class + _ Public Interface IEDMIServiceChannel Inherits EDMIServiceReference.IEDMIService, System.ServiceModel.IClientChannel @@ -599,27 +642,27 @@ Namespace EDMIServiceReference Return MyBase.Channel.ExecuteNonQueryAsync(SQL) End Function - Public Function NewFile(ByVal FileName As String, ByVal Contents() As Byte) As EDMIServiceReference.DocumentResult Implements EDMIServiceReference.IEDMIService.NewFile + Public Function NewFile(ByVal FileName As String, ByVal Contents() As Byte) As EDMIServiceReference.DocumentResultOld Implements EDMIServiceReference.IEDMIService.NewFile Return MyBase.Channel.NewFile(FileName, Contents) End Function - Public Function NewFileAsync(ByVal FileName As String, ByVal Contents() As Byte) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResult) Implements EDMIServiceReference.IEDMIService.NewFileAsync + Public Function NewFileAsync(ByVal FileName As String, ByVal Contents() As Byte) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResultOld) Implements EDMIServiceReference.IEDMIService.NewFileAsync Return MyBase.Channel.NewFileAsync(FileName, Contents) End Function - Public Function UpdateFile(ByVal DocObject As EDMIServiceReference.DocumentObject, ByVal Contents() As Byte) As EDMIServiceReference.DocumentResult Implements EDMIServiceReference.IEDMIService.UpdateFile + Public Function UpdateFile(ByVal DocObject As EDMIServiceReference.DocumentObject, ByVal Contents() As Byte) As EDMIServiceReference.DocumentResultOld Implements EDMIServiceReference.IEDMIService.UpdateFile Return MyBase.Channel.UpdateFile(DocObject, Contents) End Function - Public Function UpdateFileAsync(ByVal DocObject As EDMIServiceReference.DocumentObject, ByVal Contents() As Byte) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResult) Implements EDMIServiceReference.IEDMIService.UpdateFileAsync + Public Function UpdateFileAsync(ByVal DocObject As EDMIServiceReference.DocumentObject, ByVal Contents() As Byte) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResultOld) Implements EDMIServiceReference.IEDMIService.UpdateFileAsync Return MyBase.Channel.UpdateFileAsync(DocObject, Contents) End Function - Public Function GetFile(ByVal DocObject As EDMIServiceReference.DocumentObject) As EDMIServiceReference.DocumentResult Implements EDMIServiceReference.IEDMIService.GetFile + Public Function GetFile(ByVal DocObject As EDMIServiceReference.DocumentObject) As EDMIServiceReference.DocumentResultOld Implements EDMIServiceReference.IEDMIService.GetFile Return MyBase.Channel.GetFile(DocObject) End Function - Public Function GetFileAsync(ByVal DocObject As EDMIServiceReference.DocumentObject) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResult) Implements EDMIServiceReference.IEDMIService.GetFileAsync + Public Function GetFileAsync(ByVal DocObject As EDMIServiceReference.DocumentObject) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResultOld) Implements EDMIServiceReference.IEDMIService.GetFileAsync Return MyBase.Channel.GetFileAsync(DocObject) End Function @@ -631,36 +674,52 @@ Namespace EDMIServiceReference Return MyBase.Channel.DeleteFileAsync(DocObject) End Function - Public Function GetDocumentByDocumentId(ByVal DocumentId As Long) As EDMIServiceReference.DocumentResult Implements EDMIServiceReference.IEDMIService.GetDocumentByDocumentId + Public Function GetDocumentByDocumentId(ByVal DocumentId As Long) As EDMIServiceReference.DocumentResultOld Implements EDMIServiceReference.IEDMIService.GetDocumentByDocumentId Return MyBase.Channel.GetDocumentByDocumentId(DocumentId) End Function - Public Function GetDocumentByDocumentIdAsync(ByVal DocumentId As Long) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResult) Implements EDMIServiceReference.IEDMIService.GetDocumentByDocumentIdAsync + Public Function GetDocumentByDocumentIdAsync(ByVal DocumentId As Long) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResultOld) Implements EDMIServiceReference.IEDMIService.GetDocumentByDocumentIdAsync Return MyBase.Channel.GetDocumentByDocumentIdAsync(DocumentId) End Function - Public Function GetDocumentByContainerId(ByVal ContainerId As String) As EDMIServiceReference.DocumentResult Implements EDMIServiceReference.IEDMIService.GetDocumentByContainerId + Public Function GetDocumentByContainerId(ByVal ContainerId As String) As EDMIServiceReference.DocumentResultOld Implements EDMIServiceReference.IEDMIService.GetDocumentByContainerId Return MyBase.Channel.GetDocumentByContainerId(ContainerId) End Function - Public Function GetDocumentByContainerIdAsync(ByVal ContainerId As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResult) Implements EDMIServiceReference.IEDMIService.GetDocumentByContainerIdAsync + Public Function GetDocumentByContainerIdAsync(ByVal ContainerId As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResultOld) Implements EDMIServiceReference.IEDMIService.GetDocumentByContainerIdAsync Return MyBase.Channel.GetDocumentByContainerIdAsync(ContainerId) End Function - Public Function ImportFile(ByVal FileName As String, ByVal Contents() As Byte, ByVal AddedWho As String) As EDMIServiceReference.DocumentResult2 Implements EDMIServiceReference.IEDMIService.ImportFile + Public Function ImportFile(ByVal FileName As String, ByVal Contents() As Byte, ByVal AddedWho As String) As EDMIServiceReference.DocumentResult Implements EDMIServiceReference.IEDMIService.ImportFile Return MyBase.Channel.ImportFile(FileName, Contents, AddedWho) End Function - Public Function ImportFileAsync(ByVal FileName As String, ByVal Contents() As Byte, ByVal AddedWho As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResult2) Implements EDMIServiceReference.IEDMIService.ImportFileAsync + Public Function ImportFileAsync(ByVal FileName As String, ByVal Contents() As Byte, ByVal AddedWho As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResult) Implements EDMIServiceReference.IEDMIService.ImportFileAsync Return MyBase.Channel.ImportFileAsync(FileName, Contents, AddedWho) End Function - Public Function GetFileByObjectId(ByVal ObjectId As Long) As System.IO.Stream Implements EDMIServiceReference.IEDMIService.GetFileByObjectId - Return MyBase.Channel.GetFileByObjectId(ObjectId) + _ + 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) + 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 System.IO.Stream) Implements EDMIServiceReference.IEDMIService.GetFileByObjectIdAsync - Return MyBase.Channel.GetFileByObjectIdAsync(ObjectId) + 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) End Function Public Function NewFileIndex(ByVal DocObject As EDMIServiceReference.DocumentObject, ByVal Syskey As String, ByVal LanguageCode As String, ByVal Value As String) As EDMIServiceReference.IndexResult Implements EDMIServiceReference.IEDMIService.NewFileIndex diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl index 4129ded6..5f35f48e 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl @@ -160,10 +160,11 @@ - + - + + diff --git a/Modules.EDMIAPI/Document.vb b/Modules.EDMIAPI/Document.vb index 1330bf99..cec2d1d5 100644 --- a/Modules.EDMIAPI/Document.vb +++ b/Modules.EDMIAPI/Document.vb @@ -53,7 +53,7 @@ Public Class Document ''' ''' The filename to import ''' A document object - Public Async Function ImportFileAsync(FilePath As String, Optional [ReadOnly] As Boolean = False, Optional RetentionPeriod As Integer = 0) As Task(Of DocumentResult2) + Public Async Function ImportFileAsync(FilePath As String, Optional [ReadOnly] As Boolean = False, Optional RetentionPeriod As Integer = 0) As Task(Of DocumentResult) Try Using oStream As New FileStream(FilePath, FileMode.Open) Dim oContents As Byte() = {} @@ -73,7 +73,7 @@ Public Class Document ''' ''' The filename to import ''' A document object - Public Function ImportFile(FilePath As String) As DocumentResult2 + Public Function ImportFile(FilePath As String) As DocumentResult Try Dim oContents As Byte() = File.ReadAllBytes(FilePath) Dim oInfo As New FileInfo(FilePath) diff --git a/Modules.EDMIAPI/EDMI.API.vbproj b/Modules.EDMIAPI/EDMI.API.vbproj index 6c44daa7..62d0c483 100644 --- a/Modules.EDMIAPI/EDMI.API.vbproj +++ b/Modules.EDMIAPI/EDMI.API.vbproj @@ -109,7 +109,10 @@ Reference.svcmap - + + Reference.svcmap + + Reference.svcmap diff --git a/Service.EDMIService/EDMIService.vb b/Service.EDMIService/EDMIService.vb index d1e10899..55bd54d5 100644 --- a/Service.EDMIService/EDMIService.vb +++ b/Service.EDMIService/EDMIService.vb @@ -137,7 +137,7 @@ Public Class EDMIService #End Region #Region "Document (with FileContainer)" - Public Function NewFile(FileName As String, Contents() As Byte) As DocumentResult Implements IEDMIService.NewFile + Public Function NewFile(FileName As String, Contents() As Byte) As DocumentResultOld Implements IEDMIService.NewFile Try Dim oContainer As FileContainer Dim oContainerId As String @@ -169,14 +169,14 @@ Public Class EDMIService _logger.Debug("File saved in Container!", FileName) Dim oDocument = New DocumentObject(oContainerId, oDocId, FileName) - Return New DocumentResult(oDocument) + Return New DocumentResultOld(oDocument) Catch ex As Exception _logger.Error(ex) - Return New DocumentResult(ex.Message) + Return New DocumentResultOld(ex.Message) End Try End Function - Public Function UpdateFile(DocObject As DocumentObject, Contents() As Byte) As DocumentResult Implements IEDMIService.UpdateFile + Public Function UpdateFile(DocObject As DocumentObject, Contents() As Byte) As DocumentResultOld Implements IEDMIService.UpdateFile Try TestFileExists(DocObject.ContainerId) @@ -189,14 +189,14 @@ Public Class EDMIService oFileContainer.Save() - Return New DocumentResult(DocObject) + Return New DocumentResultOld(DocObject) Catch ex As Exception _logger.Error(ex) Return Nothing End Try End Function - Public Function GetFile(DocObject As DocumentObject) As DocumentResult Implements IEDMIService.GetFile + Public Function GetFile(DocObject As DocumentObject) As DocumentResultOld Implements IEDMIService.GetFile Try TestFileExists(DocObject.ContainerId) @@ -204,10 +204,10 @@ Public Class EDMIService Dim oContainer As FileContainer = FileContainer.Load(LogConfig, AppConfig.ContainerPassword, oContainerPath) Dim oContents As Byte() = oContainer.GetFile().Contents - Return New DocumentResult(DocObject, oContents) + Return New DocumentResultOld(DocObject, oContents) Catch ex As Exception _logger.Error(ex) - Return New DocumentResult(ex.Message) + Return New DocumentResultOld(ex.Message) End Try End Function @@ -243,13 +243,13 @@ Public Class EDMIService End If End Sub - Public Function GetDocumentByDocumentId(DocumentId As Long) As DocumentResult Implements IEDMIService.GetDocumentByDocumentId + Public Function GetDocumentByDocumentId(DocumentId As Long) As DocumentResultOld Implements IEDMIService.GetDocumentByDocumentId Try Dim oSQL = $"SELECT GUID, CONTAINER_ID, ORIGINAL_FILENAME FROM TBIDB_DOCUMENT WHERE GUID = {DocumentId}" Dim oTable = Firebird.GetDatatable(oSQL) If oTable.Rows.Count = 0 Then - Return New DocumentResult("Document not found") + Return New DocumentResultOld("Document not found") End If Dim oRow As DataRow = oTable.Rows.Item(0) @@ -265,19 +265,19 @@ Public Class EDMIService Dim oContainer As FileContainer = FileContainer.Load(LogConfig, AppConfig.ContainerPassword, oContainerPath) Dim oContents As Byte() = oContainer.GetFile().Contents - Return New DocumentResult(oDocument, oContents) + Return New DocumentResultOld(oDocument, oContents) Catch ex As Exception - Return New DocumentResult(ex.Message) + Return New DocumentResultOld(ex.Message) End Try End Function - Public Function GetDocumentByContainerId(ContainerId As String) As DocumentResult Implements IEDMIService.GetDocumentByContainerId + Public Function GetDocumentByContainerId(ContainerId As String) As DocumentResultOld Implements IEDMIService.GetDocumentByContainerId Try Dim oSQL = $"SELECT GUID, CONTAINER_ID, ORIGINAL_FILENAME FROM TBIDB_DOCUMENT WHERE CONTAINER_ID = '{ContainerId}'" Dim oTable = Firebird.GetDatatable(oSQL) If oTable.Rows.Count = 0 Then - Return New DocumentResult("Document not found") + Return New DocumentResultOld("Document not found") End If Dim oRow As DataRow = oTable.Rows.Item(0) @@ -293,26 +293,26 @@ Public Class EDMIService Dim oContainer As FileContainer = FileContainer.Load(LogConfig, AppConfig.ContainerPassword, oContainerPath) Dim oContents As Byte() = oContainer.GetFile().Contents - Return New DocumentResult(oDocument, oContents) + Return New DocumentResultOld(oDocument, oContents) Catch ex As Exception - Return New DocumentResult(ex.Message) + Return New DocumentResultOld(ex.Message) End Try End Function #End Region #Region "Document" - Public Function ImportFile(FileName As String, Contents() As Byte, AddedWho As String) As DocumentResult2 Implements IEDMIService.ImportFile + Public Function ImportFile(FileName As String, Contents() As Byte, AddedWho As String) As DocumentResult Implements IEDMIService.ImportFile Dim oDocumentType As String = "DummyDocumentType" Dim oRelativePath As String = EDMIPath.GetRelativePath(oDocumentType, FileName) Dim oAbsolutePath As String = EDMIPath.GetActivePath(oDocumentType, FileName) Dim oDirectoryPath = EDMIPath.GetActivePath(oDocumentType) - Dim oDocument = New DocumentResult2.DocumentObject With {.FileName = FileName} + Dim oDocument = New DocumentResult.DocumentObject With {.FileName = FileName} Try Directory.CreateDirectory(oDirectoryPath) Catch ex As Exception _logger.Error(ex) - Return New DocumentResult2(ex.Message) + Return New DocumentResult(ex.Message) End Try Try @@ -337,16 +337,16 @@ Public Class EDMIService oDocument.FileId = oObjectId - Return New DocumentResult2(oDocument) + Return New DocumentResult(oDocument) Catch ex As Exception _logger.Error(ex) - Return New DocumentResult2(ex.Message) + Return New DocumentResult(ex.Message) End Try End Function - Public Function GetFileByObjectId(ObjectId As Int64) As Stream Implements IEDMIService.GetFileByObjectId + Public Function GetFileByObjectId(Data As Messages.DocumentStreamRequest) As Messages.DocumentStreamResponse Implements IEDMIService.GetFileByObjectId Try - Dim oSQL As String = $"SELECT DocRelativePath FROM VWIDB_DOC_DATA WHERE IDB_OBJ_ID = {ObjectId}" + Dim oSQL As String = $"SELECT DocRelativePath FROM VWIDB_DOC_DATA WHERE IDB_OBJ_ID = {Data.ObjectId}" Dim oPath As String = MSSQL.GetScalarValue(oSQL) If IsNothing(oPath) Then @@ -357,8 +357,15 @@ Public Class EDMIService _logger.Debug("GetFileByObjectId: Loading file [{0}]", oFullPath) + Dim oFileInfo As New FileInfo(oFullPath) Dim oSource As FileStream = IO.File.Open(oFullPath, FileMode.Open) - Return oSource + + Dim oMessage As New Messages.DocumentStreamResponse() With { + .FileName = oFileInfo.Name, + .FileContents = oSource + } + + Return oMessage Catch ex As Exception _logger.Error(ex) Return Nothing diff --git a/Service.EDMIService/EDMIService.vbproj b/Service.EDMIService/EDMIService.vbproj index 77d5cb22..ad9b533a 100644 --- a/Service.EDMIService/EDMIService.vbproj +++ b/Service.EDMIService/EDMIService.vbproj @@ -103,13 +103,14 @@ + - + - + Component diff --git a/Service.EDMIService/IEDMIService.vb b/Service.EDMIService/IEDMIService.vb index 4a5bfd94..e52909c8 100644 --- a/Service.EDMIService/IEDMIService.vb +++ b/Service.EDMIService/IEDMIService.vb @@ -29,30 +29,30 @@ Interface IEDMIService #Region "Document (with FileContainer)" - Function NewFile(FileName As String, Contents As Byte()) As DocumentResult + Function NewFile(FileName As String, Contents As Byte()) As DocumentResultOld - Function UpdateFile(DocObject As DocumentObject, Contents As Byte()) As DocumentResult + Function UpdateFile(DocObject As DocumentObject, Contents As Byte()) As DocumentResultOld - Function GetFile(DocObject As DocumentObject) As DocumentResult + Function GetFile(DocObject As DocumentObject) As DocumentResultOld Function DeleteFile(DocObject As DocumentObject) As Boolean - Function GetDocumentByDocumentId(DocumentId As Int64) As DocumentResult + Function GetDocumentByDocumentId(DocumentId As Int64) As DocumentResultOld - Function GetDocumentByContainerId(ContainerId As String) As DocumentResult + Function GetDocumentByContainerId(ContainerId As String) As DocumentResultOld #End Region #Region "Document (New)" - Function ImportFile(FileName As String, Contents As Byte(), AddedWho As String) As DocumentResult2 + Function ImportFile(FileName As String, Contents As Byte(), AddedWho As String) As DocumentResult - Function GetFileByObjectId(ObjectId As Int64) As Stream + Function GetFileByObjectId(Data As Messages.DocumentStreamRequest) As Messages.DocumentStreamResponse #End Region #Region "Index" diff --git a/Service.EDMIService/Messages.vb b/Service.EDMIService/Messages.vb new file mode 100644 index 00000000..1f78722e --- /dev/null +++ b/Service.EDMIService/Messages.vb @@ -0,0 +1,22 @@ +Imports System.IO +Imports System.ServiceModel + +Namespace Messages + + Public Class DocumentStreamRequest + + Public ObjectId As Int64 + End Class + + + Public Class DocumentStreamResponse + + Public FileName As String + + + Public FileContents As Stream + End Class +End Namespace + + + diff --git a/Service.EDMIService/Results/DocumentResult.vb b/Service.EDMIService/Results/DocumentResult.vb index c9d6f3c3..11332187 100644 --- a/Service.EDMIService/Results/DocumentResult.vb +++ b/Service.EDMIService/Results/DocumentResult.vb @@ -1,4 +1,4 @@ -Imports DigitalData.Modules.Filesystem +Imports System.Xml.Serialization Public Class DocumentResult @@ -23,4 +23,9 @@ Public Class DocumentResult Public Sub New(ErrorMessage As String) MyBase.New(ErrorMessage) End Sub + + Public Class DocumentObject + Public FileName As String + Public FileId As String + End Class End Class diff --git a/Service.EDMIService/Results/DocumentResult2.vb b/Service.EDMIService/Results/DocumentResultOld.vb similarity index 77% rename from Service.EDMIService/Results/DocumentResult2.vb rename to Service.EDMIService/Results/DocumentResultOld.vb index f2ad596d..02202516 100644 --- a/Service.EDMIService/Results/DocumentResult2.vb +++ b/Service.EDMIService/Results/DocumentResultOld.vb @@ -1,5 +1,7 @@ - -Public Class DocumentResult2 +Imports DigitalData.Modules.Filesystem + + +Public Class DocumentResultOld Inherits BaseResult Public Document As DocumentObject @@ -21,9 +23,4 @@ Public Class DocumentResult2 Public Sub New(ErrorMessage As String) MyBase.New(ErrorMessage) End Sub - - Public Class DocumentObject - Public FileName As String - Public FileId As String - End Class End Class