EDMI: Update Service and Client to Use Messages for EDMI Methods
This commit is contained in:
parent
d2717b9216
commit
ed29e1b6a9
20
GUIs.Test.EDMIBenchmark/Form1.Designer.vb
generated
20
GUIs.Test.EDMIBenchmark/Form1.Designer.vb
generated
@ -32,7 +32,7 @@ Partial Class Form1
|
|||||||
Me.ButtonImportFiles = New DevExpress.XtraBars.BarButtonItem()
|
Me.ButtonImportFiles = New DevExpress.XtraBars.BarButtonItem()
|
||||||
Me.buttonClearLog = New DevExpress.XtraBars.BarButtonItem()
|
Me.buttonClearLog = New DevExpress.XtraBars.BarButtonItem()
|
||||||
Me.buttonClearFiles = New DevExpress.XtraBars.BarButtonItem()
|
Me.buttonClearFiles = New DevExpress.XtraBars.BarButtonItem()
|
||||||
Me.TextboxObejctId = New DevExpress.XtraBars.BarEditItem()
|
Me.TextboxObjectId = New DevExpress.XtraBars.BarEditItem()
|
||||||
Me.RepositoryItemTextEdit1 = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit()
|
Me.RepositoryItemTextEdit1 = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit()
|
||||||
Me.ButtonLoadFile = New DevExpress.XtraBars.BarButtonItem()
|
Me.ButtonLoadFile = New DevExpress.XtraBars.BarButtonItem()
|
||||||
Me.BarListItem1 = New DevExpress.XtraBars.BarListItem()
|
Me.BarListItem1 = New DevExpress.XtraBars.BarListItem()
|
||||||
@ -110,7 +110,7 @@ Partial Class Form1
|
|||||||
'RibbonControl1
|
'RibbonControl1
|
||||||
'
|
'
|
||||||
Me.RibbonControl1.ExpandCollapseItem.Id = 0
|
Me.RibbonControl1.ExpandCollapseItem.Id = 0
|
||||||
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.ButtonSelectFiles, Me.ButtonImportFiles, Me.buttonClearLog, Me.buttonClearFiles, Me.TextboxObejctId, Me.ButtonLoadFile, Me.BarListItem1, Me.BarButtonItem2, Me.BarToggleSwitchItem1, Me.BarDockingMenuItem1, Me.BarMdiChildrenListItem1, Me.BarButtonItem1})
|
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.ButtonSelectFiles, Me.ButtonImportFiles, Me.buttonClearLog, Me.buttonClearFiles, Me.TextboxObjectId, Me.ButtonLoadFile, Me.BarListItem1, Me.BarButtonItem2, Me.BarToggleSwitchItem1, Me.BarDockingMenuItem1, Me.BarMdiChildrenListItem1, Me.BarButtonItem1})
|
||||||
Me.RibbonControl1.Location = New System.Drawing.Point(0, 0)
|
Me.RibbonControl1.Location = New System.Drawing.Point(0, 0)
|
||||||
Me.RibbonControl1.MaxItemId = 14
|
Me.RibbonControl1.MaxItemId = 14
|
||||||
Me.RibbonControl1.Name = "RibbonControl1"
|
Me.RibbonControl1.Name = "RibbonControl1"
|
||||||
@ -151,12 +151,12 @@ Partial Class Form1
|
|||||||
'
|
'
|
||||||
'TextboxObejctId
|
'TextboxObejctId
|
||||||
'
|
'
|
||||||
Me.TextboxObejctId.Caption = "Document Id"
|
Me.TextboxObjectId.Caption = "Document Id"
|
||||||
Me.TextboxObejctId.Edit = Me.RepositoryItemTextEdit1
|
Me.TextboxObjectId.Edit = Me.RepositoryItemTextEdit1
|
||||||
Me.TextboxObejctId.EditWidth = 100
|
Me.TextboxObjectId.EditWidth = 100
|
||||||
Me.TextboxObejctId.Id = 5
|
Me.TextboxObjectId.Id = 5
|
||||||
Me.TextboxObejctId.ImageOptions.SvgImage = CType(resources.GetObject("TextboxObejctId.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
Me.TextboxObjectId.ImageOptions.SvgImage = CType(resources.GetObject("TextboxObejctId.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||||
Me.TextboxObejctId.Name = "TextboxObejctId"
|
Me.TextboxObjectId.Name = "TextboxObejctId"
|
||||||
'
|
'
|
||||||
'RepositoryItemTextEdit1
|
'RepositoryItemTextEdit1
|
||||||
'
|
'
|
||||||
@ -218,7 +218,7 @@ Partial Class Form1
|
|||||||
'
|
'
|
||||||
'RibbonPageGroup4
|
'RibbonPageGroup4
|
||||||
'
|
'
|
||||||
Me.RibbonPageGroup4.ItemLinks.Add(Me.TextboxObejctId)
|
Me.RibbonPageGroup4.ItemLinks.Add(Me.TextboxObjectId)
|
||||||
Me.RibbonPageGroup4.ItemLinks.Add(Me.BarToggleSwitchItem1)
|
Me.RibbonPageGroup4.ItemLinks.Add(Me.BarToggleSwitchItem1)
|
||||||
Me.RibbonPageGroup4.ItemLinks.Add(Me.ButtonLoadFile)
|
Me.RibbonPageGroup4.ItemLinks.Add(Me.ButtonLoadFile)
|
||||||
Me.RibbonPageGroup4.ItemLinks.Add(Me.BarButtonItem2)
|
Me.RibbonPageGroup4.ItemLinks.Add(Me.BarButtonItem2)
|
||||||
@ -497,7 +497,7 @@ Partial Class Form1
|
|||||||
Friend WithEvents buttonClearLog As DevExpress.XtraBars.BarButtonItem
|
Friend WithEvents buttonClearLog As DevExpress.XtraBars.BarButtonItem
|
||||||
Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
||||||
Friend WithEvents buttonClearFiles As DevExpress.XtraBars.BarButtonItem
|
Friend WithEvents buttonClearFiles As DevExpress.XtraBars.BarButtonItem
|
||||||
Friend WithEvents TextboxObejctId As DevExpress.XtraBars.BarEditItem
|
Friend WithEvents TextboxObjectId As DevExpress.XtraBars.BarEditItem
|
||||||
Friend WithEvents RepositoryItemTextEdit1 As DevExpress.XtraEditors.Repository.RepositoryItemTextEdit
|
Friend WithEvents RepositoryItemTextEdit1 As DevExpress.XtraEditors.Repository.RepositoryItemTextEdit
|
||||||
Friend WithEvents ButtonLoadFile As DevExpress.XtraBars.BarButtonItem
|
Friend WithEvents ButtonLoadFile As DevExpress.XtraBars.BarButtonItem
|
||||||
Friend WithEvents RibbonPageGroup4 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
Friend WithEvents RibbonPageGroup4 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
||||||
|
|||||||
@ -4,22 +4,19 @@ Imports DigitalData.Modules.EDMI.API
|
|||||||
Imports DevExpress.XtraEditors
|
Imports DevExpress.XtraEditors
|
||||||
Imports DevExpress.XtraEditors.Controls
|
Imports DevExpress.XtraEditors.Controls
|
||||||
Imports System.IO
|
Imports System.IO
|
||||||
|
Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
|
||||||
|
|
||||||
Public Class Form1
|
Public Class Form1
|
||||||
Private _Channel As EDMIServiceReference.IEDMIServiceChannel
|
|
||||||
Private _LogConfig As LogConfig
|
Private _LogConfig As LogConfig
|
||||||
Private _Logger As Logger
|
Private _Logger As Logger
|
||||||
|
Private _Client As Client
|
||||||
|
|
||||||
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||||
Try
|
Try
|
||||||
_LogConfig = New LogConfig(LogConfig.PathType.Temp, Nothing, "EDMIBenschmark")
|
_LogConfig = New LogConfig(LogConfig.PathType.Temp, Nothing, "EDMIBenschmark")
|
||||||
_Logger = _LogConfig.GetLogger()
|
_Logger = _LogConfig.GetLogger()
|
||||||
|
_Client = New Client(_LogConfig, "net.tcp://172.24.12.39:9000/DigitalData/Services/Main")
|
||||||
Dim oChannelFactory As New ChannelFactory(Of EDMIServiceReference.IEDMIServiceChannel)(
|
_Client.Connect()
|
||||||
Channel.GetBinding(TcpClientCredentialType.Windows),
|
|
||||||
"net.tcp://172.24.12.39:9000/DigitalData/Services/Main")
|
|
||||||
_Channel = oChannelFactory.CreateChannel()
|
|
||||||
_Channel.Open()
|
|
||||||
|
|
||||||
DocumentViewer1.Init(_LogConfig, "21182889975216572111813147150675976632")
|
DocumentViewer1.Init(_LogConfig, "21182889975216572111813147150675976632")
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
@ -61,18 +58,8 @@ Public Class Form1
|
|||||||
|
|
||||||
AddLogMessage($"Importing {oFileInfo.Name}... ({FormatBytes(oFileInfo.Length)})")
|
AddLogMessage($"Importing {oFileInfo.Name}... ({FormatBytes(oFileInfo.Length)})")
|
||||||
|
|
||||||
Dim oContents As Byte() = New Byte(oFileInfo.Length) {}
|
Dim oObjectId As Long = Await _Client.ImportFileAsync(oFileInfo.Name, "WichtigesDokument", 1, 0)
|
||||||
|
AddLogMessage($"File with Id [{oObjectId}] imported!")
|
||||||
Using oStream As New FileStream(oFileName, FileMode.Open)
|
|
||||||
Await oStream.ReadAsync(oContents, 0, oFileInfo.Length)
|
|
||||||
End Using
|
|
||||||
|
|
||||||
Dim oResult As EDMIServiceReference.DocumentResult = Await _Channel.ImportFileAsync(oFileInfo.Name, oContents, 1, "WichtigesDokument", 0)
|
|
||||||
If oResult.OK Then
|
|
||||||
AddLogMessage($"File [{oFileInfo.Name}] with Id [{oResult.Document.FileId}] imported!")
|
|
||||||
Else
|
|
||||||
AddLogMessage($"Import Error: {oResult.ErrorMessage}")
|
|
||||||
End If
|
|
||||||
oSW.Stop()
|
oSW.Stop()
|
||||||
AddLogMessage($"Import Time: {FormatTime(oSW.ElapsedMilliseconds)}")
|
AddLogMessage($"Import Time: {FormatTime(oSW.ElapsedMilliseconds)}")
|
||||||
AddLogMessage("")
|
AddLogMessage("")
|
||||||
@ -135,18 +122,14 @@ Public Class Form1
|
|||||||
Dim oSWTotal As New Stopwatch()
|
Dim oSWTotal As New Stopwatch()
|
||||||
oSWTotal.Start()
|
oSWTotal.Start()
|
||||||
|
|
||||||
If TextboxObejctId.EditValue = "" Then
|
If TextboxObjectId.EditValue = "" Then
|
||||||
MsgBox("Please enter an object id!", MsgBoxStyle.Exclamation, "Uh oh!")
|
MsgBox("Please enter an object id!", MsgBoxStyle.Exclamation, "Uh oh!")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dim oObjectId As Integer = TextboxObejctId.EditValue
|
Dim oObjectId As Integer = TextboxObjectId.EditValue
|
||||||
|
Dim oResponse As Client.StreamedFile = Await _Client.GetFileByObjectIdAsync(oObjectId)
|
||||||
|
|
||||||
Dim oResponse = Await _Channel.GetFileByObjectIdAsync(New EDMIServiceReference.DocumentStreamRequest() With {.ObjectId = oObjectId})
|
DocumentViewer1.LoadFile(oResponse.FileName, oResponse.Stream)
|
||||||
Dim oMemoryStream As New MemoryStream()
|
|
||||||
oResponse.FileContents.CopyTo(oMemoryStream)
|
|
||||||
oMemoryStream.Position = 0
|
|
||||||
|
|
||||||
DocumentViewer1.LoadFile(oResponse.FileName, oMemoryStream)
|
|
||||||
|
|
||||||
oSWTotal.Stop()
|
oSWTotal.Stop()
|
||||||
AddLogMessage($"File [{oResponse.FileName}] loaded: [{FormatTime(oSWTotal.ElapsedMilliseconds)}]")
|
AddLogMessage($"File [{oResponse.FileName}] loaded: [{FormatTime(oSWTotal.ElapsedMilliseconds)}]")
|
||||||
@ -159,7 +142,7 @@ Public Class Form1
|
|||||||
|
|
||||||
Private Async Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick
|
Private Async Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick
|
||||||
Try
|
Try
|
||||||
Dim oResult = Await _Channel.ListFilesForUserAsync()
|
Dim oResult As Client.FileList = Await _Client.ListFilesForUserAsync()
|
||||||
BindingSource1.DataSource = oResult.Datatable
|
BindingSource1.DataSource = oResult.Datatable
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
MsgBox(ex.Message, MsgBoxStyle.Critical, "Uh oh!")
|
MsgBox(ex.Message, MsgBoxStyle.Critical, "Uh oh!")
|
||||||
@ -177,13 +160,10 @@ Public Class Form1
|
|||||||
Dim oSWTotal As New Stopwatch()
|
Dim oSWTotal As New Stopwatch()
|
||||||
oSWTotal.Start()
|
oSWTotal.Start()
|
||||||
|
|
||||||
Dim oObjectId As Int64 = oRow.Item("IDB_OBJ_ID")
|
Dim oObjectId As Long = oRow.Item("IDB_OBJ_ID")
|
||||||
Dim oResponse = Await _Channel.GetFileByObjectIdAsync(New EDMIServiceReference.DocumentStreamRequest() With {.ObjectId = oObjectId})
|
Dim oResponse As Client.StreamedFile = Await _Client.GetFileByObjectIdAsync(oObjectId)
|
||||||
Dim oMemoryStream As New MemoryStream()
|
|
||||||
oResponse.FileContents.CopyTo(oMemoryStream)
|
|
||||||
oMemoryStream.Position = 0
|
|
||||||
|
|
||||||
DocumentViewer1.LoadFile(oResponse.FileName, oMemoryStream)
|
DocumentViewer1.LoadFile(oResponse.FileName, oResponse.Stream)
|
||||||
|
|
||||||
oSWTotal.Stop()
|
oSWTotal.Stop()
|
||||||
AddLogMessage($"File [{oResponse.FileName}] loaded: [{FormatTime(oSWTotal.ElapsedMilliseconds)}]")
|
AddLogMessage($"File [{oResponse.FileName}] loaded: [{FormatTime(oSWTotal.ElapsedMilliseconds)}]")
|
||||||
@ -199,14 +179,11 @@ Public Class Form1
|
|||||||
Dim oSWTotal As New Stopwatch()
|
Dim oSWTotal As New Stopwatch()
|
||||||
oSWTotal.Start()
|
oSWTotal.Start()
|
||||||
|
|
||||||
Dim oObjectId As Integer = TextboxObejctId.EditValue
|
Dim oObjectId As Integer = TextboxObjectId.EditValue
|
||||||
|
|
||||||
Dim oResponse = Await _Channel.GetFileByObjectIdAsync(New EDMIServiceReference.DocumentStreamRequest() With {.ObjectId = oObjectId})
|
Dim oResponse As Client.StreamedFile = Await _Client.GetFileByObjectIdAsync(oObjectId)
|
||||||
Dim oMemoryStream As New MemoryStream()
|
|
||||||
oResponse.FileContents.CopyTo(oMemoryStream)
|
|
||||||
oMemoryStream.Position = 0
|
|
||||||
|
|
||||||
DocumentViewer1.LoadFile(oResponse.FileName, oMemoryStream)
|
DocumentViewer1.LoadFile(oResponse.FileName, oResponse.Stream)
|
||||||
|
|
||||||
oSWTotal.Stop()
|
oSWTotal.Stop()
|
||||||
AddLogMessage($"File [{oResponse.FileName}] loaded: [{FormatTime(oSWTotal.ElapsedMilliseconds)}]")
|
AddLogMessage($"File [{oResponse.FileName}] loaded: [{FormatTime(oSWTotal.ElapsedMilliseconds)}]")
|
||||||
@ -217,7 +194,7 @@ Public Class Form1
|
|||||||
|
|
||||||
Private Sub BarToggleSwitchItem1_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarToggleSwitchItem1.CheckedChanged
|
Private Sub BarToggleSwitchItem1_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarToggleSwitchItem1.CheckedChanged
|
||||||
If BarToggleSwitchItem1.Checked Then
|
If BarToggleSwitchItem1.Checked Then
|
||||||
If TextboxObejctId.EditValue = "" Then
|
If TextboxObjectId.EditValue = "" Then
|
||||||
Timer1.Stop()
|
Timer1.Stop()
|
||||||
MsgBox("Please set a ObjectId!", MsgBoxStyle.Critical, Text)
|
MsgBox("Please set a ObjectId!", MsgBoxStyle.Critical, Text)
|
||||||
Else
|
Else
|
||||||
|
|||||||
@ -1,24 +0,0 @@
|
|||||||
Imports System.ServiceModel
|
|
||||||
Imports System.Xml
|
|
||||||
|
|
||||||
Public Class Channel
|
|
||||||
Public Shared Function GetBinding(Optional AuthenticationMode As TcpClientCredentialType = TcpClientCredentialType.Windows) As NetTcpBinding
|
|
||||||
Return New NetTcpBinding() With {
|
|
||||||
.MaxReceivedMessageSize = Constants.MAX_RECEIVED_MESSAGE_SIZE,
|
|
||||||
.MaxBufferSize = Constants.MAX_BUFFER_SIZE,
|
|
||||||
.MaxBufferPoolSize = Constants.MAX_BUFFER_POOL_SIZE,
|
|
||||||
.MaxConnections = Constants.MAX_CONNECTIONS,
|
|
||||||
.TransferMode = TransferMode.Streamed,
|
|
||||||
.Security = New NetTcpSecurity() With {
|
|
||||||
.Mode = SecurityMode.Transport,
|
|
||||||
.Transport = New TcpTransportSecurity() With {
|
|
||||||
.ClientCredentialType = AuthenticationMode
|
|
||||||
}
|
|
||||||
},
|
|
||||||
.ReaderQuotas = New XmlDictionaryReaderQuotas() With {
|
|
||||||
.MaxArrayLength = Constants.MAX_ARRAY_LENGTH,
|
|
||||||
.MaxStringContentLength = Constants.MAX_STRING_CONTENT_LENGTH
|
|
||||||
}
|
|
||||||
}
|
|
||||||
End Function
|
|
||||||
End Class
|
|
||||||
152
Modules.EDMIAPI/Client.vb
Normal file
152
Modules.EDMIAPI/Client.vb
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
Imports DigitalData.Modules.Logging
|
||||||
|
Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
|
||||||
|
Imports System.ServiceModel
|
||||||
|
Imports System.IO
|
||||||
|
|
||||||
|
Public Class Client
|
||||||
|
Private ReadOnly _logger As Logger
|
||||||
|
Private ReadOnly _channelFactory As ChannelFactory(Of IEDMIServiceChannel)
|
||||||
|
Private _channel As IEDMIServiceChannel
|
||||||
|
|
||||||
|
Public Class StreamedFile
|
||||||
|
Public Stream As MemoryStream
|
||||||
|
Public FileName As String
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class FileList
|
||||||
|
Public Datatable As DataTable
|
||||||
|
End Class
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Creates a new EDMIAPI object
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="LogConfig">LogConfig object</param>
|
||||||
|
''' <param name="ServiceAdress">The full service url to connect to</param>
|
||||||
|
Public Sub New(LogConfig As LogConfig, ServiceAdress As String)
|
||||||
|
_logger = LogConfig.GetLogger()
|
||||||
|
|
||||||
|
Try
|
||||||
|
Dim oBinding = Channel.GetBinding()
|
||||||
|
Dim oAddress = New EndpointAddress(ServiceAdress)
|
||||||
|
Dim oFactory = New ChannelFactory(Of IEDMIServiceChannel)(oBinding, oAddress)
|
||||||
|
|
||||||
|
_channelFactory = oFactory
|
||||||
|
Catch ex As Exception
|
||||||
|
_logger.Error(ex)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Connect to the service
|
||||||
|
''' </summary>
|
||||||
|
''' <returns>True if connection was successful, false otherwise</returns>
|
||||||
|
Public Function Connect() As Boolean
|
||||||
|
Try
|
||||||
|
_channel = GetChannel()
|
||||||
|
|
||||||
|
_logger.Debug("Opening channel..")
|
||||||
|
_channel.Open()
|
||||||
|
|
||||||
|
_logger.Info("Connection to Service established!")
|
||||||
|
Return True
|
||||||
|
Catch ex As Exception
|
||||||
|
_logger.Error(ex)
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Imports a file by filename
|
||||||
|
''' </summary>
|
||||||
|
''' <returns>A document object</returns>
|
||||||
|
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 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 Async Function GetFileByObjectIdAsync(ObjectId As Long) As Task(Of StreamedFile)
|
||||||
|
Try
|
||||||
|
Dim oData As New DocumentStreamRequest() With {.ObjectId = ObjectId}
|
||||||
|
Dim oResponse As DocumentStreamResponse = Await _channel.GetFileByObjectIdAsync(oData)
|
||||||
|
Dim oMemoryStream As New MemoryStream()
|
||||||
|
oResponse.FileContents.CopyTo(oMemoryStream)
|
||||||
|
oMemoryStream.Position = 0
|
||||||
|
|
||||||
|
Return New StreamedFile() With {
|
||||||
|
.Stream = oMemoryStream,
|
||||||
|
.FileName = oResponse.FileName
|
||||||
|
}
|
||||||
|
Catch ex As Exception
|
||||||
|
_logger.Error(ex)
|
||||||
|
Throw ex
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Async Function ListFilesForUserAsync() As Task(Of FileList)
|
||||||
|
Try
|
||||||
|
Dim oResponse As DocumentListResponse = Await _channel.ListFilesForUserAsync(New ListFilesForUserRequest())
|
||||||
|
Return New FileList() With {
|
||||||
|
.Datatable = oResponse.Datatable
|
||||||
|
}
|
||||||
|
Catch ex As Exception
|
||||||
|
_logger.Error(ex)
|
||||||
|
Throw ex
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Aborts the channel and creates a new connection
|
||||||
|
''' </summary>
|
||||||
|
Private Sub Reconnect()
|
||||||
|
_logger.Warn("Connection faulted. Trying to reconnect..")
|
||||||
|
|
||||||
|
Try
|
||||||
|
_channel.Abort()
|
||||||
|
_channel = GetChannel()
|
||||||
|
_channel.Open()
|
||||||
|
Catch ex As Exception
|
||||||
|
_logger.Error(ex)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Creates a channel and adds a Faulted-Handler
|
||||||
|
''' </summary>
|
||||||
|
''' <returns>A channel object</returns>
|
||||||
|
Private Function GetChannel() As IEDMIServiceChannel
|
||||||
|
Try
|
||||||
|
_logger.Debug("Creating channel..")
|
||||||
|
Dim oChannel = _channelFactory.CreateChannel()
|
||||||
|
|
||||||
|
AddHandler oChannel.Faulted, AddressOf Reconnect
|
||||||
|
|
||||||
|
Return oChannel
|
||||||
|
Catch ex As Exception
|
||||||
|
_logger.Error(ex)
|
||||||
|
Throw ex
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
End Class
|
||||||
38
Modules.EDMIAPI/Client/Channel.vb
Normal file
38
Modules.EDMIAPI/Client/Channel.vb
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
Imports System.ServiceModel
|
||||||
|
Imports System.Xml
|
||||||
|
|
||||||
|
|
||||||
|
Public Class Channel
|
||||||
|
' Infos about MaxBufferSize and MaxBufferPoolSize
|
||||||
|
' https://social.msdn.microsoft.com/Forums/vstudio/en-US/d6e234d3-942f-4e9d-8470-32618d3f3212/maxbufferpoolsize-vs-maxbuffersize?forum=wcf
|
||||||
|
|
||||||
|
Public Const MAX_RECEIVED_MESSAGE_SIZE = 2147483647 ' 1GB
|
||||||
|
Public Const MAX_BUFFER_SIZE = 2147483647 ' 10MB
|
||||||
|
Public Const MAX_BUFFER_POOL_SIZE = 2147483647 ' 40MB
|
||||||
|
|
||||||
|
Public Const MAX_CONNECTIONS = 500
|
||||||
|
Public Const MAX_ARRAY_LENGTH = 2147483647
|
||||||
|
Public Const MAX_STRING_CONTENT_LENGTH = 2147483647
|
||||||
|
|
||||||
|
Public Shared Function GetBinding(Optional AuthenticationMode As TcpClientCredentialType = TcpClientCredentialType.Windows) As NetTcpBinding
|
||||||
|
Return New NetTcpBinding() With {
|
||||||
|
.MaxReceivedMessageSize = MAX_RECEIVED_MESSAGE_SIZE,
|
||||||
|
.MaxBufferSize = MAX_BUFFER_SIZE,
|
||||||
|
.MaxBufferPoolSize = MAX_BUFFER_POOL_SIZE,
|
||||||
|
.MaxConnections = MAX_CONNECTIONS,
|
||||||
|
.TransferMode = TransferMode.Streamed,
|
||||||
|
.Security = New NetTcpSecurity() With {
|
||||||
|
.Mode = SecurityMode.Transport,
|
||||||
|
.Transport = New TcpTransportSecurity() With {
|
||||||
|
.ClientCredentialType = AuthenticationMode
|
||||||
|
}
|
||||||
|
},
|
||||||
|
.ReaderQuotas = New XmlDictionaryReaderQuotas() With {
|
||||||
|
.MaxArrayLength = MAX_ARRAY_LENGTH,
|
||||||
|
.MaxStringContentLength = MAX_STRING_CONTENT_LENGTH
|
||||||
|
}
|
||||||
|
}
|
||||||
|
End Function
|
||||||
|
End Class
|
||||||
|
|
||||||
|
|
||||||
@ -5,6 +5,6 @@
|
|||||||
Renaming the file extension or editing the content of this file may
|
Renaming the file extension or editing the content of this file may
|
||||||
cause the file to be unrecognizable by the program.
|
cause the file to be unrecognizable by the program.
|
||||||
-->
|
-->
|
||||||
<GenericObjectDataSource DisplayName="DocumentResult" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
<GenericObjectDataSource DisplayName="DocumentImportResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||||
<TypeInfo>DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentResult, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
|
<TypeInfo>DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentImportResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
|
||||||
</GenericObjectDataSource>
|
</GenericObjectDataSource>
|
||||||
@ -1,33 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
||||||
<xs:complexType name="DocumentListResponse">
|
|
||||||
<xs:complexContent mixed="false">
|
|
||||||
<xs:extension base="tns:BaseResponse">
|
|
||||||
<xs:sequence>
|
|
||||||
<xs:element minOccurs="0" name="Datatable" nillable="true">
|
|
||||||
<xs:complexType>
|
|
||||||
<xs:annotation>
|
|
||||||
<xs:appinfo>
|
|
||||||
<ActualType Name="DataTable" Namespace="http://schemas.datacontract.org/2004/07/System.Data" xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
|
|
||||||
</ActualType>
|
|
||||||
</xs:appinfo>
|
|
||||||
</xs:annotation>
|
|
||||||
<xs:sequence>
|
|
||||||
<xs:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
|
|
||||||
<xs:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
|
|
||||||
</xs:sequence>
|
|
||||||
</xs:complexType>
|
|
||||||
</xs:element>
|
|
||||||
</xs:sequence>
|
|
||||||
</xs:extension>
|
|
||||||
</xs:complexContent>
|
|
||||||
</xs:complexType>
|
|
||||||
<xs:element name="DocumentListResponse" nillable="true" type="tns:DocumentListResponse" />
|
|
||||||
<xs:complexType name="BaseResponse">
|
|
||||||
<xs:sequence>
|
|
||||||
<xs:element minOccurs="0" name="ErrorMessage" nillable="true" type="xs:string" />
|
|
||||||
<xs:element minOccurs="0" name="OK" type="xs:boolean" />
|
|
||||||
</xs:sequence>
|
|
||||||
</xs:complexType>
|
|
||||||
<xs:element name="BaseResponse" nillable="true" type="tns:BaseResponse" />
|
|
||||||
</xs:schema>
|
|
||||||
@ -9,7 +9,6 @@
|
|||||||
<xsd:import namespace="http://schemas.datacontract.org/2004/07/System.Data" />
|
<xsd:import namespace="http://schemas.datacontract.org/2004/07/System.Data" />
|
||||||
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Modules.Filesystem" />
|
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Modules.Filesystem" />
|
||||||
<xsd:import namespace="http://schemas.microsoft.com/Message" />
|
<xsd:import namespace="http://schemas.microsoft.com/Message" />
|
||||||
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" />
|
|
||||||
</xsd:schema>
|
</xsd:schema>
|
||||||
</wsdl:types>
|
</wsdl:types>
|
||||||
<wsdl:message name="IEDMIService_Heartbeat_InputMessage">
|
<wsdl:message name="IEDMIService_Heartbeat_InputMessage">
|
||||||
@ -84,11 +83,11 @@
|
|||||||
<wsdl:message name="IEDMIService_GetDocumentByContainerId_OutputMessage">
|
<wsdl:message name="IEDMIService_GetDocumentByContainerId_OutputMessage">
|
||||||
<wsdl:part name="parameters" element="tns:GetDocumentByContainerIdResponse" />
|
<wsdl:part name="parameters" element="tns:GetDocumentByContainerIdResponse" />
|
||||||
</wsdl:message>
|
</wsdl:message>
|
||||||
<wsdl:message name="IEDMIService_ImportFile_InputMessage">
|
<wsdl:message name="DocumentImportRequest">
|
||||||
<wsdl:part name="parameters" element="tns:ImportFile" />
|
<wsdl:part name="parameters" element="tns:DocumentImportRequest" />
|
||||||
</wsdl:message>
|
</wsdl:message>
|
||||||
<wsdl:message name="IEDMIService_ImportFile_OutputMessage">
|
<wsdl:message name="DocumentImportResponse">
|
||||||
<wsdl:part name="parameters" element="tns:ImportFileResponse" />
|
<wsdl:part name="parameters" element="tns:DocumentImportResponse" />
|
||||||
</wsdl:message>
|
</wsdl:message>
|
||||||
<wsdl:message name="DocumentStreamRequest">
|
<wsdl:message name="DocumentStreamRequest">
|
||||||
<wsdl:part name="parameters" element="tns:DocumentStreamRequest" />
|
<wsdl:part name="parameters" element="tns:DocumentStreamRequest" />
|
||||||
@ -99,11 +98,9 @@
|
|||||||
<wsdl:message name="DocumentStreamResponse_Headers">
|
<wsdl:message name="DocumentStreamResponse_Headers">
|
||||||
<wsdl:part name="FileName" element="tns:FileName" />
|
<wsdl:part name="FileName" element="tns:FileName" />
|
||||||
</wsdl:message>
|
</wsdl:message>
|
||||||
<wsdl:message name="IEDMIService_ListFilesForUser_InputMessage">
|
<wsdl:message name="IEDMIService_ListFilesForUser_InputMessage" />
|
||||||
<wsdl:part name="parameters" element="tns:ListFilesForUser" />
|
<wsdl:message name="DocumentListResponse">
|
||||||
</wsdl:message>
|
<wsdl:part name="parameters" element="tns:DocumentListResponse" />
|
||||||
<wsdl:message name="IEDMIService_ListFilesForUser_OutputMessage">
|
|
||||||
<wsdl:part name="parameters" element="tns:ListFilesForUserResponse" />
|
|
||||||
</wsdl:message>
|
</wsdl:message>
|
||||||
<wsdl:message name="IEDMIService_NewFileIndex_InputMessage">
|
<wsdl:message name="IEDMIService_NewFileIndex_InputMessage">
|
||||||
<wsdl:part name="parameters" element="tns:NewFileIndex" />
|
<wsdl:part name="parameters" element="tns:NewFileIndex" />
|
||||||
@ -161,8 +158,8 @@
|
|||||||
<wsdl:output wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/GetDocumentByContainerIdResponse" message="tns:IEDMIService_GetDocumentByContainerId_OutputMessage" />
|
<wsdl:output wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/GetDocumentByContainerIdResponse" message="tns:IEDMIService_GetDocumentByContainerId_OutputMessage" />
|
||||||
</wsdl:operation>
|
</wsdl:operation>
|
||||||
<wsdl:operation name="ImportFile">
|
<wsdl:operation name="ImportFile">
|
||||||
<wsdl:input wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/ImportFile" message="tns:IEDMIService_ImportFile_InputMessage" />
|
<wsdl:input wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/ImportFile" name="DocumentImportRequest" message="tns:DocumentImportRequest" />
|
||||||
<wsdl:output wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/ImportFileResponse" message="tns:IEDMIService_ImportFile_OutputMessage" />
|
<wsdl:output wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/ImportFileResponse" name="DocumentImportResponse" message="tns:DocumentImportResponse" />
|
||||||
</wsdl:operation>
|
</wsdl:operation>
|
||||||
<wsdl:operation name="GetFileByObjectId">
|
<wsdl:operation name="GetFileByObjectId">
|
||||||
<wsdl:input wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/GetFileByObjectId" name="DocumentStreamRequest" message="tns:DocumentStreamRequest" />
|
<wsdl:input wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/GetFileByObjectId" name="DocumentStreamRequest" message="tns:DocumentStreamRequest" />
|
||||||
@ -170,7 +167,7 @@
|
|||||||
</wsdl:operation>
|
</wsdl:operation>
|
||||||
<wsdl:operation name="ListFilesForUser">
|
<wsdl:operation name="ListFilesForUser">
|
||||||
<wsdl:input wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/ListFilesForUser" message="tns:IEDMIService_ListFilesForUser_InputMessage" />
|
<wsdl:input wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/ListFilesForUser" message="tns:IEDMIService_ListFilesForUser_InputMessage" />
|
||||||
<wsdl:output wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/ListFilesForUserResponse" message="tns:IEDMIService_ListFilesForUser_OutputMessage" />
|
<wsdl:output wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/ListFilesForUserResponse" name="DocumentListResponse" message="tns:DocumentListResponse" />
|
||||||
</wsdl:operation>
|
</wsdl:operation>
|
||||||
<wsdl:operation name="NewFileIndex">
|
<wsdl:operation name="NewFileIndex">
|
||||||
<wsdl:input wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/NewFileIndex" message="tns:IEDMIService_NewFileIndex_InputMessage" />
|
<wsdl:input wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/NewFileIndex" message="tns:IEDMIService_NewFileIndex_InputMessage" />
|
||||||
|
|||||||
@ -3,7 +3,6 @@
|
|||||||
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService" />
|
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService" />
|
||||||
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Modules.Filesystem" />
|
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Modules.Filesystem" />
|
||||||
<xs:import namespace="http://schemas.microsoft.com/Message" />
|
<xs:import namespace="http://schemas.microsoft.com/Message" />
|
||||||
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" />
|
|
||||||
<xs:element name="Heartbeat">
|
<xs:element name="Heartbeat">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:sequence />
|
<xs:sequence />
|
||||||
@ -169,21 +168,21 @@
|
|||||||
</xs:sequence>
|
</xs:sequence>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="ImportFile">
|
<xs:element name="DocumentImportRequest">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:sequence>
|
<xs:sequence>
|
||||||
<xs:element minOccurs="0" name="FileName" nillable="true" type="xs:string" />
|
|
||||||
<xs:element minOccurs="0" name="Contents" nillable="true" type="xs:base64Binary" />
|
<xs:element minOccurs="0" name="Contents" nillable="true" type="xs:base64Binary" />
|
||||||
<xs:element minOccurs="0" name="ObjectStoreId" type="xs:long" />
|
|
||||||
<xs:element minOccurs="0" name="DocumentType" nillable="true" type="xs:string" />
|
<xs:element minOccurs="0" name="DocumentType" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="FileName" nillable="true" type="xs:string" />
|
||||||
|
<xs:element minOccurs="0" name="ObjectStoreId" type="xs:long" />
|
||||||
<xs:element minOccurs="0" name="RetentionDays" type="xs:long" />
|
<xs:element minOccurs="0" name="RetentionDays" type="xs:long" />
|
||||||
</xs:sequence>
|
</xs:sequence>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="ImportFileResponse">
|
<xs:element name="DocumentImportResponse">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:sequence>
|
<xs:sequence>
|
||||||
<xs:element xmlns:q12="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService" minOccurs="0" name="ImportFileResult" nillable="true" type="q12:DocumentResult" />
|
<xs:element minOccurs="0" name="ObjectId" type="xs:long" />
|
||||||
</xs:sequence>
|
</xs:sequence>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
@ -197,27 +196,35 @@
|
|||||||
<xs:element name="DocumentStreamResponse">
|
<xs:element name="DocumentStreamResponse">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:sequence>
|
<xs:sequence>
|
||||||
<xs:element xmlns:q13="http://schemas.microsoft.com/Message" name="FileContents" type="q13:StreamBody" />
|
<xs:element xmlns:q12="http://schemas.microsoft.com/Message" name="FileContents" type="q12:StreamBody" />
|
||||||
</xs:sequence>
|
</xs:sequence>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="FileName" nillable="true" type="xs:string" />
|
<xs:element name="FileName" nillable="true" type="xs:string" />
|
||||||
<xs:element name="ListFilesForUser">
|
<xs:element name="DocumentListResponse">
|
||||||
<xs:complexType>
|
|
||||||
<xs:sequence />
|
|
||||||
</xs:complexType>
|
|
||||||
</xs:element>
|
|
||||||
<xs:element name="ListFilesForUserResponse">
|
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:sequence>
|
<xs:sequence>
|
||||||
<xs:element xmlns:q14="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ListFilesForUserResult" nillable="true" type="q14:DocumentListResponse" />
|
<xs:element minOccurs="0" name="Datatable" nillable="true">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:appinfo>
|
||||||
|
<ActualType Name="DataTable" Namespace="http://schemas.datacontract.org/2004/07/System.Data" xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
|
||||||
|
</ActualType>
|
||||||
|
</xs:appinfo>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
|
||||||
|
<xs:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
</xs:sequence>
|
</xs:sequence>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="NewFileIndex">
|
<xs:element name="NewFileIndex">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:sequence>
|
<xs:sequence>
|
||||||
<xs:element xmlns:q15="http://schemas.datacontract.org/2004/07/DigitalData.Modules.Filesystem" minOccurs="0" name="DocObject" nillable="true" type="q15:DocumentObject" />
|
<xs:element xmlns:q13="http://schemas.datacontract.org/2004/07/DigitalData.Modules.Filesystem" minOccurs="0" name="DocObject" nillable="true" type="q13:DocumentObject" />
|
||||||
<xs:element minOccurs="0" name="Syskey" nillable="true" type="xs:string" />
|
<xs:element minOccurs="0" name="Syskey" nillable="true" type="xs:string" />
|
||||||
<xs:element minOccurs="0" name="LanguageCode" nillable="true" type="xs:string" />
|
<xs:element minOccurs="0" name="LanguageCode" nillable="true" type="xs:string" />
|
||||||
<xs:element minOccurs="0" name="Value" nillable="true" type="xs:string" />
|
<xs:element minOccurs="0" name="Value" nillable="true" type="xs:string" />
|
||||||
@ -227,7 +234,7 @@
|
|||||||
<xs:element name="NewFileIndexResponse">
|
<xs:element name="NewFileIndexResponse">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:sequence>
|
<xs:sequence>
|
||||||
<xs:element xmlns:q16="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService" minOccurs="0" name="NewFileIndexResult" nillable="true" type="q16:IndexResult" />
|
<xs:element xmlns:q14="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService" minOccurs="0" name="NewFileIndexResult" nillable="true" type="q14:IndexResult" />
|
||||||
</xs:sequence>
|
</xs:sequence>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
|||||||
@ -61,25 +61,6 @@
|
|||||||
</xs:complexContent>
|
</xs:complexContent>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
<xs:element name="DocumentResultOld" nillable="true" type="tns:DocumentResultOld" />
|
<xs:element name="DocumentResultOld" nillable="true" type="tns:DocumentResultOld" />
|
||||||
<xs:complexType name="DocumentResult">
|
|
||||||
<xs:complexContent mixed="false">
|
|
||||||
<xs:extension base="tns:BaseResult">
|
|
||||||
<xs:sequence>
|
|
||||||
<xs:element name="Contents" nillable="true" type="xs:base64Binary" />
|
|
||||||
<xs:element name="Document" nillable="true" type="tns:DocumentResult.DocumentObject" />
|
|
||||||
<xs:element name="HasContents" type="xs:boolean" />
|
|
||||||
</xs:sequence>
|
|
||||||
</xs:extension>
|
|
||||||
</xs:complexContent>
|
|
||||||
</xs:complexType>
|
|
||||||
<xs:element name="DocumentResult" nillable="true" type="tns:DocumentResult" />
|
|
||||||
<xs:complexType name="DocumentResult.DocumentObject">
|
|
||||||
<xs:sequence>
|
|
||||||
<xs:element minOccurs="0" name="FileId" nillable="true" type="xs:string" />
|
|
||||||
<xs:element minOccurs="0" name="FileName" nillable="true" type="xs:string" />
|
|
||||||
</xs:sequence>
|
|
||||||
</xs:complexType>
|
|
||||||
<xs:element name="DocumentResult.DocumentObject" nillable="true" type="tns:DocumentResult.DocumentObject" />
|
|
||||||
<xs:complexType name="IndexResult">
|
<xs:complexType name="IndexResult">
|
||||||
<xs:complexContent mixed="false">
|
<xs:complexContent mixed="false">
|
||||||
<xs:extension base="tns:BaseResult">
|
<xs:extension base="tns:BaseResult">
|
||||||
|
|||||||
@ -31,7 +31,6 @@
|
|||||||
<MetadataFile FileName="System.Data.xsd" MetadataType="Schema" ID="6c7bdb47-eea4-4d03-bc52-9747c865bbf0" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
|
<MetadataFile FileName="System.Data.xsd" MetadataType="Schema" ID="6c7bdb47-eea4-4d03-bc52-9747c865bbf0" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
|
||||||
<MetadataFile FileName="DigitalData.Modules.Filesystem.xsd" MetadataType="Schema" ID="cfa7fe70-b4f1-4a12-a957-d0134a8e6279" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
|
<MetadataFile FileName="DigitalData.Modules.Filesystem.xsd" MetadataType="Schema" ID="cfa7fe70-b4f1-4a12-a957-d0134a8e6279" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
|
||||||
<MetadataFile FileName="Message.xsd" MetadataType="Schema" ID="2589e82f-d68f-4843-b153-a80edf895f82" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
|
<MetadataFile FileName="Message.xsd" MetadataType="Schema" ID="2589e82f-d68f-4843-b153-a80edf895f82" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
|
||||||
<MetadataFile FileName="DigitalData.Services.EDMIService.Messages.xsd" MetadataType="Schema" ID="b87b9d40-54a5-4dc7-b563-1ca220bd70fd" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
|
|
||||||
</Metadata>
|
</Metadata>
|
||||||
<Extensions>
|
<Extensions>
|
||||||
<ExtensionFile FileName="configuration91.svcinfo" Name="configuration91.svcinfo" />
|
<ExtensionFile FileName="configuration91.svcinfo" Name="configuration91.svcinfo" />
|
||||||
|
|||||||
@ -23,7 +23,6 @@ Namespace EDMIServiceReference
|
|||||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ScalarResult)), _
|
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ScalarResult)), _
|
||||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NonQueryResult)), _
|
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NonQueryResult)), _
|
||||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentResultOld)), _
|
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentResultOld)), _
|
||||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentResult)), _
|
|
||||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.IndexResult)), _
|
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.IndexResult)), _
|
||||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.TableResult))> _
|
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.TableResult))> _
|
||||||
Partial Public Class BaseResult
|
Partial Public Class BaseResult
|
||||||
@ -93,13 +92,9 @@ Namespace EDMIServiceReference
|
|||||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.BaseResult)), _
|
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.BaseResult)), _
|
||||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NonQueryResult)), _
|
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NonQueryResult)), _
|
||||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentResultOld)), _
|
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentResultOld)), _
|
||||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentResult)), _
|
|
||||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentResult.DocumentObject)), _
|
|
||||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.IndexResult)), _
|
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.IndexResult)), _
|
||||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(System.DBNull)), _
|
System.Runtime.Serialization.KnownTypeAttribute(GetType(System.DBNull)), _
|
||||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentObject)), _
|
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentObject))> _
|
||||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentListResponse)), _
|
|
||||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.BaseResponse))> _
|
|
||||||
Partial Public Class ScalarResult
|
Partial Public Class ScalarResult
|
||||||
Inherits EDMIServiceReference.BaseResult
|
Inherits EDMIServiceReference.BaseResult
|
||||||
|
|
||||||
@ -181,121 +176,6 @@ Namespace EDMIServiceReference
|
|||||||
End Property
|
End Property
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
<System.Diagnostics.DebuggerStepThroughAttribute(), _
|
|
||||||
System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
|
|
||||||
System.Runtime.Serialization.DataContractAttribute(Name:="DocumentResult", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService"), _
|
|
||||||
System.SerializableAttribute()> _
|
|
||||||
Partial Public Class DocumentResult
|
|
||||||
Inherits EDMIServiceReference.BaseResult
|
|
||||||
|
|
||||||
Private ContentsField() As Byte
|
|
||||||
|
|
||||||
Private DocumentField As EDMIServiceReference.DocumentResult.DocumentObject
|
|
||||||
|
|
||||||
Private HasContentsField As Boolean
|
|
||||||
|
|
||||||
<System.Runtime.Serialization.DataMemberAttribute(IsRequired:=true)> _
|
|
||||||
Public Property Contents() As Byte()
|
|
||||||
Get
|
|
||||||
Return Me.ContentsField
|
|
||||||
End Get
|
|
||||||
Set
|
|
||||||
If (Object.ReferenceEquals(Me.ContentsField, value) <> true) Then
|
|
||||||
Me.ContentsField = value
|
|
||||||
Me.RaisePropertyChanged("Contents")
|
|
||||||
End If
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
|
|
||||||
<System.Runtime.Serialization.DataMemberAttribute(IsRequired:=true)> _
|
|
||||||
Public Property Document() As EDMIServiceReference.DocumentResult.DocumentObject
|
|
||||||
Get
|
|
||||||
Return Me.DocumentField
|
|
||||||
End Get
|
|
||||||
Set
|
|
||||||
If (Object.ReferenceEquals(Me.DocumentField, value) <> true) Then
|
|
||||||
Me.DocumentField = value
|
|
||||||
Me.RaisePropertyChanged("Document")
|
|
||||||
End If
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
|
|
||||||
<System.Runtime.Serialization.DataMemberAttribute(IsRequired:=true)> _
|
|
||||||
Public Property HasContents() As Boolean
|
|
||||||
Get
|
|
||||||
Return Me.HasContentsField
|
|
||||||
End Get
|
|
||||||
Set
|
|
||||||
If (Me.HasContentsField.Equals(value) <> true) Then
|
|
||||||
Me.HasContentsField = value
|
|
||||||
Me.RaisePropertyChanged("HasContents")
|
|
||||||
End If
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
|
|
||||||
<System.Diagnostics.DebuggerStepThroughAttribute(), _
|
|
||||||
System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
|
|
||||||
System.Runtime.Serialization.DataContractAttribute(Name:="DocumentResult.DocumentObject", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService"), _
|
|
||||||
System.SerializableAttribute()> _
|
|
||||||
Partial Public Class DocumentObject
|
|
||||||
Inherits Object
|
|
||||||
Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
|
|
||||||
|
|
||||||
<System.NonSerializedAttribute()> _
|
|
||||||
Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
|
|
||||||
|
|
||||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
|
||||||
Private FileIdField As String
|
|
||||||
|
|
||||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
|
||||||
Private FileNameField As String
|
|
||||||
|
|
||||||
Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData
|
|
||||||
Get
|
|
||||||
Return Me.extensionDataField
|
|
||||||
End Get
|
|
||||||
Set
|
|
||||||
Me.extensionDataField = value
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
|
|
||||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
|
||||||
Public Property FileId() As String
|
|
||||||
Get
|
|
||||||
Return Me.FileIdField
|
|
||||||
End Get
|
|
||||||
Set
|
|
||||||
If (Object.ReferenceEquals(Me.FileIdField, value) <> true) Then
|
|
||||||
Me.FileIdField = value
|
|
||||||
Me.RaisePropertyChanged("FileId")
|
|
||||||
End If
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
|
|
||||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
|
||||||
Public Property FileName() As String
|
|
||||||
Get
|
|
||||||
Return Me.FileNameField
|
|
||||||
End Get
|
|
||||||
Set
|
|
||||||
If (Object.ReferenceEquals(Me.FileNameField, value) <> true) Then
|
|
||||||
Me.FileNameField = value
|
|
||||||
Me.RaisePropertyChanged("FileName")
|
|
||||||
End If
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
|
|
||||||
Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
|
|
||||||
|
|
||||||
Protected Sub RaisePropertyChanged(ByVal propertyName As String)
|
|
||||||
Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent
|
|
||||||
If (Not (propertyChanged) Is Nothing) Then
|
|
||||||
propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName))
|
|
||||||
End If
|
|
||||||
End Sub
|
|
||||||
End Class
|
|
||||||
End Class
|
|
||||||
|
|
||||||
<System.Diagnostics.DebuggerStepThroughAttribute(), _
|
<System.Diagnostics.DebuggerStepThroughAttribute(), _
|
||||||
System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
|
System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
|
||||||
System.Runtime.Serialization.DataContractAttribute(Name:="IndexResult", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService"), _
|
System.Runtime.Serialization.DataContractAttribute(Name:="IndexResult", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService"), _
|
||||||
@ -419,96 +299,6 @@ Namespace EDMIServiceReference
|
|||||||
End Sub
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
<System.Diagnostics.DebuggerStepThroughAttribute(), _
|
|
||||||
System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
|
|
||||||
System.Runtime.Serialization.DataContractAttribute(Name:="DocumentListResponse", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages"& _
|
|
||||||
""), _
|
|
||||||
System.SerializableAttribute()> _
|
|
||||||
Partial Public Class DocumentListResponse
|
|
||||||
Inherits EDMIServiceReference.BaseResponse
|
|
||||||
|
|
||||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
|
||||||
Private DatatableField As System.Data.DataTable
|
|
||||||
|
|
||||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
|
||||||
Public Property Datatable() As System.Data.DataTable
|
|
||||||
Get
|
|
||||||
Return Me.DatatableField
|
|
||||||
End Get
|
|
||||||
Set
|
|
||||||
If (Object.ReferenceEquals(Me.DatatableField, value) <> true) Then
|
|
||||||
Me.DatatableField = value
|
|
||||||
Me.RaisePropertyChanged("Datatable")
|
|
||||||
End If
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
End Class
|
|
||||||
|
|
||||||
<System.Diagnostics.DebuggerStepThroughAttribute(), _
|
|
||||||
System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
|
|
||||||
System.Runtime.Serialization.DataContractAttribute(Name:="BaseResponse", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages"& _
|
|
||||||
""), _
|
|
||||||
System.SerializableAttribute(), _
|
|
||||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DocumentListResponse))> _
|
|
||||||
Partial Public Class BaseResponse
|
|
||||||
Inherits Object
|
|
||||||
Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
|
|
||||||
|
|
||||||
<System.NonSerializedAttribute()> _
|
|
||||||
Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
|
|
||||||
|
|
||||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
|
||||||
Private ErrorMessageField As String
|
|
||||||
|
|
||||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
|
||||||
Private OKField As Boolean
|
|
||||||
|
|
||||||
<Global.System.ComponentModel.BrowsableAttribute(false)> _
|
|
||||||
Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData
|
|
||||||
Get
|
|
||||||
Return Me.extensionDataField
|
|
||||||
End Get
|
|
||||||
Set
|
|
||||||
Me.extensionDataField = value
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
|
|
||||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
|
||||||
Public Property ErrorMessage() As String
|
|
||||||
Get
|
|
||||||
Return Me.ErrorMessageField
|
|
||||||
End Get
|
|
||||||
Set
|
|
||||||
If (Object.ReferenceEquals(Me.ErrorMessageField, value) <> true) Then
|
|
||||||
Me.ErrorMessageField = value
|
|
||||||
Me.RaisePropertyChanged("ErrorMessage")
|
|
||||||
End If
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
|
|
||||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
|
||||||
Public Property OK() As Boolean
|
|
||||||
Get
|
|
||||||
Return Me.OKField
|
|
||||||
End Get
|
|
||||||
Set
|
|
||||||
If (Me.OKField.Equals(value) <> true) Then
|
|
||||||
Me.OKField = value
|
|
||||||
Me.RaisePropertyChanged("OK")
|
|
||||||
End If
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
|
|
||||||
Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
|
|
||||||
|
|
||||||
Protected Sub RaisePropertyChanged(ByVal propertyName As String)
|
|
||||||
Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent
|
|
||||||
If (Not (propertyChanged) Is Nothing) Then
|
|
||||||
propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName))
|
|
||||||
End If
|
|
||||||
End Sub
|
|
||||||
End Class
|
|
||||||
|
|
||||||
<System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0"), _
|
<System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0"), _
|
||||||
System.ServiceModel.ServiceContractAttribute([Namespace]:="http://DigitalData.Services.EDMIService", ConfigurationName:="EDMIServiceReference.IEDMIService")> _
|
System.ServiceModel.ServiceContractAttribute([Namespace]:="http://DigitalData.Services.EDMIService", ConfigurationName:="EDMIServiceReference.IEDMIService")> _
|
||||||
Public Interface IEDMIService
|
Public Interface IEDMIService
|
||||||
@ -593,11 +383,12 @@ Namespace EDMIServiceReference
|
|||||||
"onse")> _
|
"onse")> _
|
||||||
Function GetDocumentByContainerIdAsync(ByVal ContainerId As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResultOld)
|
Function GetDocumentByContainerIdAsync(ByVal ContainerId As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResultOld)
|
||||||
|
|
||||||
|
'CODEGEN: Der Nachrichtenvertrag wird generiert, da der Wrappername (DocumentImportRequest) von Nachricht "DocumentImportRequest" nicht mit dem Standardwert (ImportFile) übereinstimmt.
|
||||||
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/ImportFile", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/ImportFileResponse")> _
|
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/ImportFile", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/ImportFileResponse")> _
|
||||||
Function ImportFile(ByVal FileName As String, ByVal Contents() As Byte, ByVal ObjectStoreId As Long, ByVal DocumentType As String, ByVal RetentionDays As Long) As EDMIServiceReference.DocumentResult
|
Function ImportFile(ByVal request As EDMIServiceReference.DocumentImportRequest) As EDMIServiceReference.DocumentImportResponse
|
||||||
|
|
||||||
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/ImportFile", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/ImportFileResponse")> _
|
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/ImportFile", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/ImportFileResponse")> _
|
||||||
Function ImportFileAsync(ByVal FileName As String, ByVal Contents() As Byte, ByVal ObjectStoreId As Long, ByVal DocumentType As String, ByVal RetentionDays As Long) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResult)
|
Function ImportFileAsync(ByVal request As EDMIServiceReference.DocumentImportRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentImportResponse)
|
||||||
|
|
||||||
'CODEGEN: Der Nachrichtenvertrag wird generiert, da der Wrappername (DocumentStreamRequest) von Nachricht "DocumentStreamRequest" nicht mit dem Standardwert (GetFileByObjectId) übereinstimmt.
|
'CODEGEN: Der Nachrichtenvertrag wird generiert, da der Wrappername (DocumentStreamRequest) von Nachricht "DocumentStreamRequest" nicht mit dem Standardwert (GetFileByObjectId) übereinstimmt.
|
||||||
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/GetFileByObjectId", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/GetFileByObjectIdResponse")> _
|
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/GetFileByObjectId", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/GetFileByObjectIdResponse")> _
|
||||||
@ -606,11 +397,12 @@ Namespace EDMIServiceReference
|
|||||||
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/GetFileByObjectId", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/GetFileByObjectIdResponse")> _
|
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/GetFileByObjectId", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/GetFileByObjectIdResponse")> _
|
||||||
Function GetFileByObjectIdAsync(ByVal request As EDMIServiceReference.DocumentStreamRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentStreamResponse)
|
Function GetFileByObjectIdAsync(ByVal request As EDMIServiceReference.DocumentStreamRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentStreamResponse)
|
||||||
|
|
||||||
|
'CODEGEN: Der Nachrichtenvertrag wird generiert, da der Vorgang ListFilesForUser weder in RPC noch in einem Dokument eingeschlossen ist.
|
||||||
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/ListFilesForUser", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/ListFilesForUserResponse")> _
|
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/ListFilesForUser", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/ListFilesForUserResponse")> _
|
||||||
Function ListFilesForUser() As EDMIServiceReference.DocumentListResponse
|
Function ListFilesForUser(ByVal request As EDMIServiceReference.ListFilesForUserRequest) As EDMIServiceReference.DocumentListResponse
|
||||||
|
|
||||||
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/ListFilesForUser", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/ListFilesForUserResponse")> _
|
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/ListFilesForUser", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/ListFilesForUserResponse")> _
|
||||||
Function ListFilesForUserAsync() As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentListResponse)
|
Function ListFilesForUserAsync(ByVal request As EDMIServiceReference.ListFilesForUserRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentListResponse)
|
||||||
|
|
||||||
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/NewFileIndex", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/NewFileIndexResponse")> _
|
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/NewFileIndex", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/NewFileIndexResponse")> _
|
||||||
Function NewFileIndex(ByVal DocObject As EDMIServiceReference.DocumentObject, ByVal Syskey As String, ByVal LanguageCode As String, ByVal Value As String) As EDMIServiceReference.IndexResult
|
Function NewFileIndex(ByVal DocObject As EDMIServiceReference.DocumentObject, ByVal Syskey As String, ByVal LanguageCode As String, ByVal Value As String) As EDMIServiceReference.IndexResult
|
||||||
@ -619,6 +411,60 @@ 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)
|
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
|
End Interface
|
||||||
|
|
||||||
|
<System.Diagnostics.DebuggerStepThroughAttribute(), _
|
||||||
|
System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0"), _
|
||||||
|
System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced), _
|
||||||
|
System.ServiceModel.MessageContractAttribute(WrapperName:="DocumentImportRequest", WrapperNamespace:="http://DigitalData.Services.EDMIService", IsWrapped:=true)> _
|
||||||
|
Partial Public Class DocumentImportRequest
|
||||||
|
|
||||||
|
<System.ServiceModel.MessageBodyMemberAttribute([Namespace]:="http://DigitalData.Services.EDMIService", Order:=0)> _
|
||||||
|
Public Contents() As Byte
|
||||||
|
|
||||||
|
<System.ServiceModel.MessageBodyMemberAttribute([Namespace]:="http://DigitalData.Services.EDMIService", Order:=1)> _
|
||||||
|
Public DocumentType As String
|
||||||
|
|
||||||
|
<System.ServiceModel.MessageBodyMemberAttribute([Namespace]:="http://DigitalData.Services.EDMIService", Order:=2)> _
|
||||||
|
Public FileName As String
|
||||||
|
|
||||||
|
<System.ServiceModel.MessageBodyMemberAttribute([Namespace]:="http://DigitalData.Services.EDMIService", Order:=3)> _
|
||||||
|
Public ObjectStoreId As Long
|
||||||
|
|
||||||
|
<System.ServiceModel.MessageBodyMemberAttribute([Namespace]:="http://DigitalData.Services.EDMIService", Order:=4)> _
|
||||||
|
Public RetentionDays As Long
|
||||||
|
|
||||||
|
Public Sub New()
|
||||||
|
MyBase.New
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub New(ByVal Contents() As Byte, ByVal DocumentType As String, ByVal FileName As String, ByVal ObjectStoreId As Long, ByVal RetentionDays As Long)
|
||||||
|
MyBase.New
|
||||||
|
Me.Contents = Contents
|
||||||
|
Me.DocumentType = DocumentType
|
||||||
|
Me.FileName = FileName
|
||||||
|
Me.ObjectStoreId = ObjectStoreId
|
||||||
|
Me.RetentionDays = RetentionDays
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
|
|
||||||
|
<System.Diagnostics.DebuggerStepThroughAttribute(), _
|
||||||
|
System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0"), _
|
||||||
|
System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced), _
|
||||||
|
System.ServiceModel.MessageContractAttribute(WrapperName:="DocumentImportResponse", WrapperNamespace:="http://DigitalData.Services.EDMIService", IsWrapped:=true)> _
|
||||||
|
Partial Public Class DocumentImportResponse
|
||||||
|
|
||||||
|
<System.ServiceModel.MessageBodyMemberAttribute([Namespace]:="http://DigitalData.Services.EDMIService", Order:=0)> _
|
||||||
|
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
|
||||||
|
|
||||||
<System.Diagnostics.DebuggerStepThroughAttribute(), _
|
<System.Diagnostics.DebuggerStepThroughAttribute(), _
|
||||||
System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0"), _
|
System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0"), _
|
||||||
System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced), _
|
System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced), _
|
||||||
@ -661,6 +507,36 @@ Namespace EDMIServiceReference
|
|||||||
End Sub
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
|
<System.Diagnostics.DebuggerStepThroughAttribute(), _
|
||||||
|
System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0"), _
|
||||||
|
System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced), _
|
||||||
|
System.ServiceModel.MessageContractAttribute(IsWrapped:=false)> _
|
||||||
|
Partial Public Class ListFilesForUserRequest
|
||||||
|
|
||||||
|
Public Sub New()
|
||||||
|
MyBase.New
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
|
|
||||||
|
<System.Diagnostics.DebuggerStepThroughAttribute(), _
|
||||||
|
System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0"), _
|
||||||
|
System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced), _
|
||||||
|
System.ServiceModel.MessageContractAttribute(WrapperName:="DocumentListResponse", WrapperNamespace:="http://DigitalData.Services.EDMIService", IsWrapped:=true)> _
|
||||||
|
Partial Public Class DocumentListResponse
|
||||||
|
|
||||||
|
<System.ServiceModel.MessageBodyMemberAttribute([Namespace]:="http://DigitalData.Services.EDMIService", Order:=0)> _
|
||||||
|
Public Datatable As System.Data.DataTable
|
||||||
|
|
||||||
|
Public Sub New()
|
||||||
|
MyBase.New
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub New(ByVal Datatable As System.Data.DataTable)
|
||||||
|
MyBase.New
|
||||||
|
Me.Datatable = Datatable
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
|
|
||||||
<System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")> _
|
<System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")> _
|
||||||
Public Interface IEDMIServiceChannel
|
Public Interface IEDMIServiceChannel
|
||||||
Inherits EDMIServiceReference.IEDMIService, System.ServiceModel.IClientChannel
|
Inherits EDMIServiceReference.IEDMIService, System.ServiceModel.IClientChannel
|
||||||
@ -788,12 +664,35 @@ Namespace EDMIServiceReference
|
|||||||
Return MyBase.Channel.GetDocumentByContainerIdAsync(ContainerId)
|
Return MyBase.Channel.GetDocumentByContainerIdAsync(ContainerId)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function ImportFile(ByVal FileName As String, ByVal Contents() As Byte, ByVal ObjectStoreId As Long, ByVal DocumentType As String, ByVal RetentionDays As Long) As EDMIServiceReference.DocumentResult Implements EDMIServiceReference.IEDMIService.ImportFile
|
<System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||||
Return MyBase.Channel.ImportFile(FileName, Contents, ObjectStoreId, DocumentType, RetentionDays)
|
Function EDMIServiceReference_IEDMIService_ImportFile(ByVal request As EDMIServiceReference.DocumentImportRequest) As EDMIServiceReference.DocumentImportResponse Implements EDMIServiceReference.IEDMIService.ImportFile
|
||||||
|
Return MyBase.Channel.ImportFile(request)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function ImportFileAsync(ByVal FileName As String, ByVal Contents() As Byte, ByVal ObjectStoreId As Long, ByVal DocumentType As String, ByVal RetentionDays As Long) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentResult) Implements EDMIServiceReference.IEDMIService.ImportFileAsync
|
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
|
||||||
Return MyBase.Channel.ImportFileAsync(FileName, Contents, ObjectStoreId, DocumentType, RetentionDays)
|
Dim inValue As EDMIServiceReference.DocumentImportRequest = New EDMIServiceReference.DocumentImportRequest()
|
||||||
|
inValue.Contents = Contents
|
||||||
|
inValue.DocumentType = DocumentType
|
||||||
|
inValue.FileName = FileName
|
||||||
|
inValue.ObjectStoreId = ObjectStoreId
|
||||||
|
inValue.RetentionDays = RetentionDays
|
||||||
|
Dim retVal As EDMIServiceReference.DocumentImportResponse = CType(Me,EDMIServiceReference.IEDMIService).ImportFile(inValue)
|
||||||
|
Return retVal.ObjectId
|
||||||
|
End Function
|
||||||
|
|
||||||
|
<System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||||
|
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
|
||||||
|
inValue.DocumentType = DocumentType
|
||||||
|
inValue.FileName = FileName
|
||||||
|
inValue.ObjectStoreId = ObjectStoreId
|
||||||
|
inValue.RetentionDays = RetentionDays
|
||||||
|
Return CType(Me,EDMIServiceReference.IEDMIService).ImportFileAsync(inValue)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
<System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)> _
|
<System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||||
@ -820,12 +719,25 @@ Namespace EDMIServiceReference
|
|||||||
Return CType(Me,EDMIServiceReference.IEDMIService).GetFileByObjectIdAsync(inValue)
|
Return CType(Me,EDMIServiceReference.IEDMIService).GetFileByObjectIdAsync(inValue)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function ListFilesForUser() As EDMIServiceReference.DocumentListResponse Implements EDMIServiceReference.IEDMIService.ListFilesForUser
|
<System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||||
Return MyBase.Channel.ListFilesForUser
|
Function EDMIServiceReference_IEDMIService_ListFilesForUser(ByVal request As EDMIServiceReference.ListFilesForUserRequest) As EDMIServiceReference.DocumentListResponse Implements EDMIServiceReference.IEDMIService.ListFilesForUser
|
||||||
|
Return MyBase.Channel.ListFilesForUser(request)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function ListFilesForUserAsync() As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentListResponse) Implements EDMIServiceReference.IEDMIService.ListFilesForUserAsync
|
Public Function ListFilesForUser() As System.Data.DataTable
|
||||||
Return MyBase.Channel.ListFilesForUserAsync
|
Dim inValue As EDMIServiceReference.ListFilesForUserRequest = New EDMIServiceReference.ListFilesForUserRequest()
|
||||||
|
Dim retVal As EDMIServiceReference.DocumentListResponse = CType(Me,EDMIServiceReference.IEDMIService).ListFilesForUser(inValue)
|
||||||
|
Return retVal.Datatable
|
||||||
|
End Function
|
||||||
|
|
||||||
|
<System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||||
|
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)
|
||||||
End Function
|
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
|
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
|
||||||
|
|||||||
@ -151,10 +151,10 @@
|
|||||||
</wsdl:operation>
|
</wsdl:operation>
|
||||||
<wsdl:operation name="ImportFile">
|
<wsdl:operation name="ImportFile">
|
||||||
<soap12:operation soapAction="http://DigitalData.Services.EDMIService/IEDMIService/ImportFile" style="document" />
|
<soap12:operation soapAction="http://DigitalData.Services.EDMIService/IEDMIService/ImportFile" style="document" />
|
||||||
<wsdl:input>
|
<wsdl:input name="DocumentImportRequest">
|
||||||
<soap12:body use="literal" />
|
<soap12:body use="literal" />
|
||||||
</wsdl:input>
|
</wsdl:input>
|
||||||
<wsdl:output>
|
<wsdl:output name="DocumentImportResponse">
|
||||||
<soap12:body use="literal" />
|
<soap12:body use="literal" />
|
||||||
</wsdl:output>
|
</wsdl:output>
|
||||||
</wsdl:operation>
|
</wsdl:operation>
|
||||||
@ -173,7 +173,7 @@
|
|||||||
<wsdl:input>
|
<wsdl:input>
|
||||||
<soap12:body use="literal" />
|
<soap12:body use="literal" />
|
||||||
</wsdl:input>
|
</wsdl:input>
|
||||||
<wsdl:output>
|
<wsdl:output name="DocumentListResponse">
|
||||||
<soap12:body use="literal" />
|
<soap12:body use="literal" />
|
||||||
</wsdl:output>
|
</wsdl:output>
|
||||||
</wsdl:operation>
|
</wsdl:operation>
|
||||||
|
|||||||
@ -1,12 +0,0 @@
|
|||||||
Public Class Constants
|
|
||||||
' Infos about MaxBufferSize and MaxBufferPoolSize
|
|
||||||
' https://social.msdn.microsoft.com/Forums/vstudio/en-US/d6e234d3-942f-4e9d-8470-32618d3f3212/maxbufferpoolsize-vs-maxbuffersize?forum=wcf
|
|
||||||
|
|
||||||
Public Const MAX_RECEIVED_MESSAGE_SIZE = 2147483647 ' 1GB
|
|
||||||
Public Const MAX_BUFFER_SIZE = 2147483647 ' 10MB
|
|
||||||
Public Const MAX_BUFFER_POOL_SIZE = 2147483647 ' 40MB
|
|
||||||
|
|
||||||
Public Const MAX_CONNECTIONS = 500
|
|
||||||
Public Const MAX_ARRAY_LENGTH = 2147483647
|
|
||||||
Public Const MAX_STRING_CONTENT_LENGTH = 2147483647
|
|
||||||
End Class
|
|
||||||
@ -1,200 +0,0 @@
|
|||||||
Imports DigitalData.Modules.Logging
|
|
||||||
Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
|
|
||||||
Imports System.ServiceModel
|
|
||||||
Imports System.IO
|
|
||||||
|
|
||||||
Public Class Document
|
|
||||||
Private _logger As Logger
|
|
||||||
Private _logConfig As LogConfig
|
|
||||||
Private _channelFactory As ChannelFactory(Of IEDMIServiceChannel)
|
|
||||||
Private _channel As IEDMIServiceChannel
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Creates a new EDMIAPI object
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="LogConfig">LogConfig object</param>
|
|
||||||
''' <param name="ServiceAdress">The full service url to connect to</param>
|
|
||||||
Public Sub New(LogConfig As LogConfig, ServiceAdress As String)
|
|
||||||
_logger = LogConfig.GetLogger()
|
|
||||||
_logConfig = LogConfig
|
|
||||||
|
|
||||||
Try
|
|
||||||
Dim oBinding = Channel.GetBinding()
|
|
||||||
Dim oAddress = New EndpointAddress(ServiceAdress)
|
|
||||||
Dim oFactory = New ChannelFactory(Of IEDMIServiceChannel)(oBinding, oAddress)
|
|
||||||
|
|
||||||
_channelFactory = oFactory
|
|
||||||
Catch ex As Exception
|
|
||||||
_logger.Error(ex)
|
|
||||||
End Try
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Connect to the service
|
|
||||||
''' </summary>
|
|
||||||
''' <returns>True if connection was successful, false otherwise</returns>
|
|
||||||
Public Function Connect() As Boolean
|
|
||||||
Try
|
|
||||||
_channel = GetChannel()
|
|
||||||
|
|
||||||
_logger.Debug("Opening channel..")
|
|
||||||
_channel.Open()
|
|
||||||
|
|
||||||
_logger.Info("Connection to Service established!")
|
|
||||||
Return True
|
|
||||||
Catch ex As Exception
|
|
||||||
_logger.Error(ex)
|
|
||||||
Return False
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Imports a file by filename
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="FilePath">The filename to import</param>
|
|
||||||
''' <returns>A document object</returns>
|
|
||||||
Public Async Function ImportFileAsync(FilePath As String, Optional [ReadOnly] As Boolean = False, Optional RetentionDays As Integer = 0) As Task(Of DocumentResult)
|
|
||||||
Try
|
|
||||||
Using oStream As New FileStream(FilePath, FileMode.Open)
|
|
||||||
Dim oContents As Byte() = {}
|
|
||||||
Dim oBytesRead = Await oStream.ReadAsync(oContents, 0, oStream.Length)
|
|
||||||
Dim oResult = Await _channel.ImportFileAsync(FilePath, oContents, 1, "WichtigesDokument", RetentionDays)
|
|
||||||
|
|
||||||
Return oResult
|
|
||||||
End Using
|
|
||||||
Catch ex As Exception
|
|
||||||
_logger.Error(ex)
|
|
||||||
Throw ex
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Imports a file by filename
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="FilePath">The filename to import</param>
|
|
||||||
''' <returns>A document object</returns>
|
|
||||||
Public Function ImportFile(FilePath As String) As DocumentResult
|
|
||||||
Try
|
|
||||||
Dim oContents As Byte() = File.ReadAllBytes(FilePath)
|
|
||||||
Dim oInfo As New FileInfo(FilePath)
|
|
||||||
Dim oDocObject = _channel.ImportFile(FilePath, oContents, 1, "WichtigesDokument", 0)
|
|
||||||
Return oDocObject
|
|
||||||
Catch ex As Exception
|
|
||||||
_logger.Error(ex)
|
|
||||||
Throw ex
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'''' <summary>
|
|
||||||
'''' Imports a file by filename
|
|
||||||
'''' </summary>
|
|
||||||
'''' <param name="FilePath">The filename to import</param>
|
|
||||||
'''' <returns>A document object</returns>
|
|
||||||
'Public Function ImportFile(FilePath As String) As DocumentResult
|
|
||||||
' Try
|
|
||||||
' Dim oContents As Byte() = File.ReadAllBytes(FilePath)
|
|
||||||
' Dim oInfo As New FileInfo(FilePath)
|
|
||||||
' Dim oName As String = oInfo.Name
|
|
||||||
' Dim oExtension As String = oInfo.Extension.Substring(1)
|
|
||||||
|
|
||||||
' Dim oDocObject = _channel.NewFile(oName, oContents)
|
|
||||||
' Return oDocObject
|
|
||||||
' Catch ex As Exception
|
|
||||||
' _logger.Error(ex)
|
|
||||||
' Throw ex
|
|
||||||
' End Try
|
|
||||||
'End Function
|
|
||||||
|
|
||||||
'''' <summary>
|
|
||||||
'''' Imports a file by filename
|
|
||||||
'''' </summary>
|
|
||||||
'''' <param name="FilePath">The filename to import</param>
|
|
||||||
'''' <returns>A document object</returns>
|
|
||||||
'Public Async Function ImportFileAsync(FilePath As String) As Task(Of DocumentResult)
|
|
||||||
' Try
|
|
||||||
' Dim oContents As Byte() = File.ReadAllBytes(FilePath)
|
|
||||||
' Dim oInfo As New FileInfo(FilePath)
|
|
||||||
' Dim oName As String = oInfo.Name
|
|
||||||
' Dim oExtension As String = oInfo.Extension.Substring(1)
|
|
||||||
|
|
||||||
' Dim oDocObject = Await _channel.NewFileAsync(oName, oContents)
|
|
||||||
' Return oDocObject
|
|
||||||
' Catch ex As Exception
|
|
||||||
' _logger.Error(ex)
|
|
||||||
' Throw ex
|
|
||||||
' End Try
|
|
||||||
'End Function
|
|
||||||
|
|
||||||
'Public Async Function NewFileIndexAsync(DocObject As DocumentObject, Syskey As String, LanguageCode As String, Value As String) As Task(Of IndexResult)
|
|
||||||
' Try
|
|
||||||
' Dim oResult As IndexResult = Await _channel.NewFileIndexAsync(DocObject, Syskey, LanguageCode, Value)
|
|
||||||
|
|
||||||
' Return oResult
|
|
||||||
' Catch ex As Exception
|
|
||||||
' _logger.Error(ex)
|
|
||||||
' Throw ex
|
|
||||||
' End Try
|
|
||||||
'End Function
|
|
||||||
|
|
||||||
'Public Function NewFileIndex(DocObject As DocumentObject, Syskey As String, LanguageCode As String, Value As String) As IndexResult
|
|
||||||
' Try
|
|
||||||
' Dim oResult As IndexResult = _channel.NewFileIndex(DocObject, Syskey, LanguageCode, Value)
|
|
||||||
|
|
||||||
' Return oResult
|
|
||||||
' Catch ex As Exception
|
|
||||||
' _logger.Error(ex)
|
|
||||||
' Throw ex
|
|
||||||
' End Try
|
|
||||||
'End Function
|
|
||||||
|
|
||||||
'Public Function GetDocumentByDocumentId(DocumentId As Int64) As DocumentResult
|
|
||||||
' Try
|
|
||||||
' Return _channel.GetDocumentByDocumentId(DocumentId)
|
|
||||||
' Catch ex As Exception
|
|
||||||
' _logger.Error(ex)
|
|
||||||
' Throw ex
|
|
||||||
' End Try
|
|
||||||
'End Function
|
|
||||||
|
|
||||||
'Public Function GetDocumentByContainerId(ContainerId As String) As DocumentResult
|
|
||||||
' Try
|
|
||||||
' Return _channel.GetDocumentByContainerId(ContainerId)
|
|
||||||
' Catch ex As Exception
|
|
||||||
' _logger.Error(ex)
|
|
||||||
' Throw ex
|
|
||||||
' End Try
|
|
||||||
'End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Aborts the channel and creates a new connection
|
|
||||||
''' </summary>
|
|
||||||
Private Sub Reconnect()
|
|
||||||
_logger.Warn("Connection faulted. Trying to reconnect..")
|
|
||||||
|
|
||||||
Try
|
|
||||||
_channel.Abort()
|
|
||||||
_channel = GetChannel()
|
|
||||||
_channel.Open()
|
|
||||||
Catch ex As Exception
|
|
||||||
_logger.Error(ex)
|
|
||||||
End Try
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Creates a channel and adds a Faulted-Handler
|
|
||||||
''' </summary>
|
|
||||||
''' <returns>A channel object</returns>
|
|
||||||
Private Function GetChannel() As IEDMIServiceChannel
|
|
||||||
Try
|
|
||||||
_logger.Debug("Creating channel..")
|
|
||||||
Dim oChannel = _channelFactory.CreateChannel()
|
|
||||||
|
|
||||||
AddHandler oChannel.Faulted, AddressOf Reconnect
|
|
||||||
|
|
||||||
Return oChannel
|
|
||||||
Catch ex As Exception
|
|
||||||
_logger.Error(ex)
|
|
||||||
Throw ex
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
End Class
|
|
||||||
@ -72,14 +72,13 @@
|
|||||||
<Import Include="System.Threading.Tasks" />
|
<Import Include="System.Threading.Tasks" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Channel.vb" />
|
<Compile Include="Client\Channel.vb" />
|
||||||
<Compile Include="Connected Services\EDMIServiceReference\Reference.vb">
|
<Compile Include="Connected Services\EDMIServiceReference\Reference.vb">
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
<DependentUpon>Reference.svcmap</DependentUpon>
|
<DependentUpon>Reference.svcmap</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Constants.vb" />
|
<Compile Include="Client.vb" />
|
||||||
<Compile Include="Document.vb" />
|
|
||||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
<Compile Include="My Project\AssemblyInfo.vb" />
|
||||||
<Compile Include="My Project\Application.Designer.vb">
|
<Compile Include="My Project\Application.Designer.vb">
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
@ -106,10 +105,10 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="app.config" />
|
<None Include="app.config" />
|
||||||
<None Include="Connected Services\EDMIServiceReference\DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentListResponse.datasource">
|
<None Include="Connected Services\EDMIServiceReference\DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentImportResponse.datasource">
|
||||||
<DependentUpon>Reference.svcmap</DependentUpon>
|
<DependentUpon>Reference.svcmap</DependentUpon>
|
||||||
</None>
|
</None>
|
||||||
<None Include="Connected Services\EDMIServiceReference\DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentResult.datasource">
|
<None Include="Connected Services\EDMIServiceReference\DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentListResponse.datasource">
|
||||||
<DependentUpon>Reference.svcmap</DependentUpon>
|
<DependentUpon>Reference.svcmap</DependentUpon>
|
||||||
</None>
|
</None>
|
||||||
<None Include="Connected Services\EDMIServiceReference\DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentResultOld.datasource">
|
<None Include="Connected Services\EDMIServiceReference\DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentResultOld.datasource">
|
||||||
@ -133,9 +132,6 @@
|
|||||||
<None Include="Connected Services\EDMIServiceReference\DigitalData.Modules.Filesystem.xsd">
|
<None Include="Connected Services\EDMIServiceReference\DigitalData.Modules.Filesystem.xsd">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</None>
|
</None>
|
||||||
<None Include="Connected Services\EDMIServiceReference\DigitalData.Services.EDMIService.Messages.xsd">
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</None>
|
|
||||||
<None Include="Connected Services\EDMIServiceReference\DigitalData.Services.EDMIService.wsdl" />
|
<None Include="Connected Services\EDMIServiceReference\DigitalData.Services.EDMIService.wsdl" />
|
||||||
<None Include="Connected Services\EDMIServiceReference\DigitalData.Services.EDMIService.xsd">
|
<None Include="Connected Services\EDMIServiceReference\DigitalData.Services.EDMIService.xsd">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
@ -160,6 +156,7 @@
|
|||||||
<Generator>MyApplicationCodeGenerator</Generator>
|
<Generator>MyApplicationCodeGenerator</Generator>
|
||||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
||||||
</None>
|
</None>
|
||||||
|
<None Include="My Project\DataSources\System.Data.DataTable.datasource" />
|
||||||
<None Include="My Project\Settings.settings">
|
<None Include="My Project\Settings.settings">
|
||||||
<Generator>SettingsSingleFileGenerator</Generator>
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
<CustomToolNamespace>My</CustomToolNamespace>
|
<CustomToolNamespace>My</CustomToolNamespace>
|
||||||
|
|||||||
@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
This file is automatically generated by Visual Studio .Net. It is
|
||||||
|
used to store generic object data source configuration information.
|
||||||
|
Renaming the file extension or editing the content of this file may
|
||||||
|
cause the file to be unrecognizable by the program.
|
||||||
|
-->
|
||||||
|
<GenericObjectDataSource DisplayName="DataTable" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||||
|
<TypeInfo>System.Data.DataTable, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</TypeInfo>
|
||||||
|
</GenericObjectDataSource>
|
||||||
@ -33,6 +33,8 @@ Public Class EDMIService
|
|||||||
_username = oUsername
|
_username = oUsername
|
||||||
_logger = LogConfig.GetLogger()
|
_logger = LogConfig.GetLogger()
|
||||||
_logger.Debug("New Request by User [{0}]", _username)
|
_logger.Debug("New Request by User [{0}]", _username)
|
||||||
|
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Function StripDomainFromUsername(UserName As String)
|
Public Function StripDomainFromUsername(UserName As String)
|
||||||
@ -313,16 +315,14 @@ Public Class EDMIService
|
|||||||
''' <summary>
|
''' <summary>
|
||||||
''' Imports a file according to ObjectStoreId
|
''' Imports a file according to ObjectStoreId
|
||||||
''' </summary>
|
''' </summary>
|
||||||
''' <param name="FileName"></param>
|
|
||||||
''' <param name="Contents"></param>
|
|
||||||
''' <returns></returns>
|
''' <returns></returns>
|
||||||
Public Function ImportFile(FileName As String, Contents() As Byte, ObjectStoreId As Int64, DocumentType As String, Optional RetentionDays As Int64 = Nothing) As DocumentResult Implements IEDMIService.ImportFile
|
Public Function ImportFile(Data As Messages.DocumentImportRequest) As Messages.DocumentImportResponse Implements IEDMIService.ImportFile
|
||||||
Dim oObjectStore = GlobalState.ObjectStores.
|
Dim oObjectStore = GlobalState.ObjectStores.
|
||||||
Where(Function(s) s.Id = ObjectStoreId).
|
Where(Function(s) s.Id = Data.ObjectStoreId).
|
||||||
FirstOrDefault()
|
FirstOrDefault()
|
||||||
|
|
||||||
If oObjectStore Is Nothing Then
|
If oObjectStore Is Nothing Then
|
||||||
Return New DocumentResult($"Object Store with Id [{ObjectStoreId}] does not exist!")
|
Throw New FaultException($"Object Store with Id [{Data.ObjectStoreId}] does not exist!")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dim EDMIPath = New EDMI.File.Path(LogConfig, oObjectStore.Path)
|
Dim EDMIPath = New EDMI.File.Path(LogConfig, oObjectStore.Path)
|
||||||
@ -335,24 +335,23 @@ Public Class EDMIService
|
|||||||
' and return ObjectStore Path from ObjectStoreId + RelativePath
|
' and return ObjectStore Path from ObjectStoreId + RelativePath
|
||||||
' VWIDB_OBJECTSTORE
|
' VWIDB_OBJECTSTORE
|
||||||
|
|
||||||
Dim oRelativePath As String = EDMIPath.GetRelativePath(DocumentType, FileName)
|
Dim oRelativePath As String = EDMIPath.GetRelativePath(Data.DocumentType, Data.FileName)
|
||||||
Dim oAbsolutePath As String = EDMIPath.GetFullPath(DocumentType, FileName)
|
Dim oAbsolutePath As String = EDMIPath.GetFullPath(Data.DocumentType, Data.FileName)
|
||||||
Dim oDirectoryPath = EDMIPath.GetFullPath(DocumentType)
|
Dim oDirectoryPath = EDMIPath.GetFullPath(Data.DocumentType)
|
||||||
Dim oDocument = New DocumentResult.DocumentObject With {.FileName = FileName}
|
|
||||||
|
|
||||||
Try
|
Try
|
||||||
Directory.CreateDirectory(oDirectoryPath)
|
Directory.CreateDirectory(oDirectoryPath)
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
_logger.Error(ex)
|
_logger.Error(ex)
|
||||||
Return New DocumentResult(ex.Message)
|
Throw New FaultException(ex.Message)
|
||||||
End Try
|
End Try
|
||||||
|
|
||||||
Try
|
Try
|
||||||
Dim oVersionedFileName As String = Filesystem.GetVersionedFilename(oAbsolutePath)
|
Dim oVersionedFileName As String = Filesystem.GetVersionedFilename(oAbsolutePath)
|
||||||
|
|
||||||
_logger.Info("ImportFile: Saving file [{0}] to path [{1}]", FileName, oVersionedFileName)
|
_logger.Info("ImportFile: Saving file [{0}] to path [{1}]", Data.FileName, oVersionedFileName)
|
||||||
Using oStream = New FileStream(oVersionedFileName, FileMode.CreateNew)
|
Using oStream = New FileStream(oVersionedFileName, FileMode.CreateNew)
|
||||||
oStream.Write(Contents, 0, Contents.Length)
|
oStream.Write(Data.Contents, 0, Data.Contents.Length)
|
||||||
oStream.Flush(True)
|
oStream.Flush(True)
|
||||||
oStream.Close()
|
oStream.Close()
|
||||||
End Using
|
End Using
|
||||||
@ -367,12 +366,10 @@ Public Class EDMIService
|
|||||||
|
|
||||||
Dim oObjectId = MSSQL.GetScalarValue(oCommand, "@IDB_OBJ_ID")
|
Dim oObjectId = MSSQL.GetScalarValue(oCommand, "@IDB_OBJ_ID")
|
||||||
|
|
||||||
oDocument.FileId = oObjectId
|
Return New Messages.DocumentImportResponse() With {.ObjectId = oObjectId}
|
||||||
|
|
||||||
Return New DocumentResult(oDocument)
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
_logger.Error(ex)
|
_logger.Error(ex)
|
||||||
Return New DocumentResult(ex.Message)
|
Throw New FaultException(ex.Message)
|
||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@ -427,7 +424,7 @@ Public Class EDMIService
|
|||||||
|
|
||||||
Public Function ListFilesForUser() As Messages.DocumentListResponse Implements IEDMIService.ListFilesForUser
|
Public Function ListFilesForUser() As Messages.DocumentListResponse Implements IEDMIService.ListFilesForUser
|
||||||
Try
|
Try
|
||||||
Dim oSQL = $"SELECT * FROM VWIDB_DOC_DATA WHERE ADDED_WHO = UPPER('{_username}')"
|
Dim oSQL = $"SELECT * FROM VWIDB_DOC_DATA"
|
||||||
Dim oDatatable As DataTable = MSSQL.GetDatatable(oSQL)
|
Dim oDatatable As DataTable = MSSQL.GetDatatable(oSQL)
|
||||||
oDatatable.TableName = "DocumentList"
|
oDatatable.TableName = "DocumentList"
|
||||||
|
|
||||||
|
|||||||
@ -49,7 +49,8 @@ Interface IEDMIService
|
|||||||
|
|
||||||
#Region "Document (New)"
|
#Region "Document (New)"
|
||||||
<OperationContract>
|
<OperationContract>
|
||||||
Function ImportFile(FileName As String, Contents As Byte(), ObjectStoreId As Int64, DocumentType As String, Optional RetentionDays As Int64 = Nothing) As DocumentResult
|
Function ImportFile(Data As Messages.DocumentImportRequest) As Messages.DocumentImportResponse
|
||||||
|
'Function ImportFile(FileName As String, Contents As Byte(), ObjectStoreId As Int64, DocumentType As String, Optional RetentionDays As Int64 = Nothing) As Messages.DocumentImportResponse
|
||||||
|
|
||||||
<OperationContract>
|
<OperationContract>
|
||||||
Function GetFileByObjectId(Data As Messages.DocumentStreamRequest) As Messages.DocumentStreamResponse
|
Function GetFileByObjectId(Data As Messages.DocumentStreamRequest) As Messages.DocumentStreamResponse
|
||||||
|
|||||||
@ -3,29 +3,30 @@ Imports System.Runtime.Serialization
|
|||||||
Imports System.ServiceModel
|
Imports System.ServiceModel
|
||||||
|
|
||||||
Namespace Messages
|
Namespace Messages
|
||||||
<Serializable>
|
<MessageContract>
|
||||||
<DataContract>
|
Public Class DocumentImportRequest
|
||||||
<KnownType(GetType(DBNull))>
|
<MessageBodyMember>
|
||||||
Public MustInherit Class BaseResponse
|
Public Contents() As Byte
|
||||||
<DataMember>
|
<MessageBodyMember>
|
||||||
Public Property OK As Boolean
|
Public ObjectStoreId As Long
|
||||||
<DataMember>
|
<MessageBodyMember>
|
||||||
Public Property ErrorMessage As String
|
Public FileName As String
|
||||||
|
<MessageBodyMember>
|
||||||
|
Public DocumentType As String
|
||||||
|
<MessageBodyMember>
|
||||||
|
Public RetentionDays As Long = 0
|
||||||
|
End Class
|
||||||
|
|
||||||
Public Sub New()
|
<MessageContract>
|
||||||
OK = True
|
Public Class DocumentImportResponse
|
||||||
End Sub
|
<MessageBodyMember>
|
||||||
|
Public ObjectId As Long
|
||||||
Public Sub New(ErrorMessage As String)
|
|
||||||
OK = False
|
|
||||||
Me.ErrorMessage = ErrorMessage
|
|
||||||
End Sub
|
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
<MessageContract>
|
<MessageContract>
|
||||||
Public Class DocumentStreamRequest
|
Public Class DocumentStreamRequest
|
||||||
<MessageBodyMember>
|
<MessageBodyMember>
|
||||||
Public ObjectId As Int64
|
Public ObjectId As Long
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
<MessageContract>
|
<MessageContract>
|
||||||
@ -37,9 +38,10 @@ Namespace Messages
|
|||||||
Public FileContents As Stream
|
Public FileContents As Stream
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
|
<MessageContract>
|
||||||
|
<KnownType(GetType(DBNull))>
|
||||||
Public Class DocumentListResponse
|
Public Class DocumentListResponse
|
||||||
Inherits BaseResponse
|
<MessageBodyMember>
|
||||||
|
|
||||||
Public Datatable As DataTable
|
Public Datatable As DataTable
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user