diff --git a/GUIs.ClientSuite/_TEST/frmFileTest.Designer.vb b/GUIs.ClientSuite/_TEST/frmFileTest.Designer.vb
index 3ac42dc9..c80e2915 100644
--- a/GUIs.ClientSuite/_TEST/frmFileTest.Designer.vb
+++ b/GUIs.ClientSuite/_TEST/frmFileTest.Designer.vb
@@ -26,13 +26,6 @@ Partial Class frmFileTest
Private Sub InitializeComponent()
Me.Button1 = New System.Windows.Forms.Button()
Me.listboxLog = New System.Windows.Forms.ListBox()
- Me.btnDocByDocId = New System.Windows.Forms.Button()
- Me.TextBox1 = New System.Windows.Forms.TextBox()
- Me.btnDocByContainerId = New System.Windows.Forms.Button()
- Me.TextBox2 = New System.Windows.Forms.TextBox()
- Me.TextBox3 = New System.Windows.Forms.TextBox()
- Me.TextBox4 = New System.Windows.Forms.TextBox()
- Me.Button2 = New System.Windows.Forms.Button()
Me.SuspendLayout()
'
'Button1
@@ -46,96 +39,26 @@ Partial Class frmFileTest
'
'listboxLog
'
- Me.listboxLog.Dock = System.Windows.Forms.DockStyle.Bottom
+ Me.listboxLog.Dock = System.Windows.Forms.DockStyle.Right
Me.listboxLog.FormattingEnabled = True
- Me.listboxLog.Location = New System.Drawing.Point(0, 225)
+ Me.listboxLog.Location = New System.Drawing.Point(165, 0)
Me.listboxLog.Name = "listboxLog"
- Me.listboxLog.Size = New System.Drawing.Size(800, 225)
+ Me.listboxLog.Size = New System.Drawing.Size(635, 450)
Me.listboxLog.TabIndex = 1
'
- 'btnDocByDocId
- '
- Me.btnDocByDocId.Location = New System.Drawing.Point(655, 12)
- Me.btnDocByDocId.Name = "btnDocByDocId"
- Me.btnDocByDocId.Size = New System.Drawing.Size(133, 32)
- Me.btnDocByDocId.TabIndex = 2
- Me.btnDocByDocId.Text = "GetDocByDocId"
- Me.btnDocByDocId.UseVisualStyleBackColor = True
- '
- 'TextBox1
- '
- Me.TextBox1.Location = New System.Drawing.Point(425, 24)
- Me.TextBox1.Name = "TextBox1"
- Me.TextBox1.Size = New System.Drawing.Size(224, 20)
- Me.TextBox1.TabIndex = 3
- '
- 'btnDocByContainerId
- '
- Me.btnDocByContainerId.Location = New System.Drawing.Point(655, 50)
- Me.btnDocByContainerId.Name = "btnDocByContainerId"
- Me.btnDocByContainerId.Size = New System.Drawing.Size(133, 32)
- Me.btnDocByContainerId.TabIndex = 4
- Me.btnDocByContainerId.Text = "GetDocByContainerId"
- Me.btnDocByContainerId.UseVisualStyleBackColor = True
- '
- 'TextBox2
- '
- Me.TextBox2.Location = New System.Drawing.Point(425, 62)
- Me.TextBox2.Name = "TextBox2"
- Me.TextBox2.Size = New System.Drawing.Size(224, 20)
- Me.TextBox2.TabIndex = 3
- '
- 'TextBox3
- '
- Me.TextBox3.Location = New System.Drawing.Point(425, 138)
- Me.TextBox3.Name = "TextBox3"
- Me.TextBox3.Size = New System.Drawing.Size(224, 20)
- Me.TextBox3.TabIndex = 5
- '
- 'TextBox4
- '
- Me.TextBox4.Location = New System.Drawing.Point(425, 112)
- Me.TextBox4.Name = "TextBox4"
- Me.TextBox4.Size = New System.Drawing.Size(224, 20)
- Me.TextBox4.TabIndex = 5
- '
- 'Button2
- '
- Me.Button2.Location = New System.Drawing.Point(655, 126)
- Me.Button2.Name = "Button2"
- Me.Button2.Size = New System.Drawing.Size(133, 32)
- Me.Button2.TabIndex = 4
- Me.Button2.Text = "GetDocByContainerId"
- Me.Button2.UseVisualStyleBackColor = True
- '
'frmFileTest
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(800, 450)
- Me.Controls.Add(Me.TextBox4)
- Me.Controls.Add(Me.TextBox3)
- Me.Controls.Add(Me.Button2)
- Me.Controls.Add(Me.btnDocByContainerId)
- Me.Controls.Add(Me.TextBox2)
- Me.Controls.Add(Me.TextBox1)
- Me.Controls.Add(Me.btnDocByDocId)
Me.Controls.Add(Me.listboxLog)
Me.Controls.Add(Me.Button1)
Me.Name = "frmFileTest"
Me.Text = "frmFileTest"
Me.ResumeLayout(False)
- Me.PerformLayout()
End Sub
Friend WithEvents Button1 As Button
Friend WithEvents listboxLog As ListBox
- Friend WithEvents btnDocByDocId As Button
- Friend WithEvents TextBox1 As TextBox
- Friend WithEvents btnDocByContainerId As Button
- Friend WithEvents TextBox2 As TextBox
- Friend WithEvents TextBox3 As TextBox
- Friend WithEvents TextBox4 As TextBox
- Friend WithEvents Button2 As Button
End Class
diff --git a/GUIs.ClientSuite/_TEST/frmFileTest.vb b/GUIs.ClientSuite/_TEST/frmFileTest.vb
index bf3a90ec..1971fe08 100644
--- a/GUIs.ClientSuite/_TEST/frmFileTest.vb
+++ b/GUIs.ClientSuite/_TEST/frmFileTest.vb
@@ -1,6 +1,5 @@
Imports System.IO
Imports DigitalData.Modules.EDMIAPI
-Imports DigitalData.Modules.Filesystem
Imports DigitalData.Modules.Logging
Public Class frmFileTest
@@ -16,7 +15,10 @@ Public Class frmFileTest
End Sub
Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim oDialog = New OpenFileDialog()
+ Dim oDialog = New OpenFileDialog() With {
+ .Multiselect = True
+ }
+
Dim oDialogResult = oDialog.ShowDialog()
If oDialogResult <> DialogResult.OK Then
@@ -24,65 +26,71 @@ Public Class frmFileTest
End If
Try
- Dim oResult = Await _fileOp.ImportFileAsync(oDialog.FileName)
+ For Each oFileName In oDialog.FileNames
+ Dim oSW As New Stopwatch()
+ oSW.Start()
- If oResult.OK = False Then
- MsgBox(oResult.ErrorMessage)
- Exit Sub
- End If
+ Dim oResult = Await _fileOp.ImportFile2(oFileName)
- listboxLog.Items.Add($"Document uploaded!")
- listboxLog.Items.Add($"DocId: {oResult.Document.DocumentId}")
- listboxLog.Items.Add($"ContainerId: {oResult.Document.ContainerId}")
- listboxLog.Items.Add($"Filename: {oResult.Document.FileName}")
- listboxLog.Items.Add($"----------------------------------------------------------")
+ oSW.Stop()
+
+ If oResult.OK = False Then
+ MsgBox(oResult.ErrorMessage)
+ Exit Sub
+ End If
+
+ listboxLog.Items.Add($"Document uploaded!")
+ listboxLog.Items.Add($"Filename: {oResult.Document.FileName}")
+ listboxLog.Items.Add($"Time in milliseconds: {oSW.ElapsedMilliseconds}")
+ listboxLog.Items.Add($"----------------------------------------------------------")
+ Next
Catch ex As Exception
ShowErrorMessage(ex)
Logger.Error(ex)
End Try
End Sub
- Private Sub btnDocByDocId_Click(sender As Object, e As EventArgs) Handles btnDocByDocId.Click
- Try
- Dim oDocId As Int64 = Int64.Parse(TextBox1.Text)
- Dim oResult = _fileOp.GetDocumentByDocumentId(oDocId)
+ 'Private Sub btnDocByDocId_Click(sender As Object, e As EventArgs)
+ ' Try
+ ' Dim oDocId As Int64 = Int64.Parse(TextBox1.Text)
+ ' Dim oResult = _fileOp.GetDocumentByDocumentId(oDocId)
- If Not oResult.OK Then
- MsgBox(oResult.ErrorMessage)
- Exit Sub
- End If
+ ' If Not oResult.OK Then
+ ' MsgBox(oResult.ErrorMessage)
+ ' Exit Sub
+ ' End If
- Dim oDocObject = oResult.Document
+ ' Dim oDocObject = oResult.Document
- listboxLog.Items.Add($"Document fetched!")
- listboxLog.Items.Add($"DocId: {oDocObject.DocumentId}")
- listboxLog.Items.Add($"ContainerId: {oDocObject.ContainerId}")
- listboxLog.Items.Add($"Filename: {oDocObject.FileName}")
- listboxLog.Items.Add($"----------------------------------------------------------")
- Catch ex As Exception
- ShowErrorMessage(ex)
- End Try
- End Sub
+ ' listboxLog.Items.Add($"Document fetched!")
+ ' listboxLog.Items.Add($"DocId: {oDocObject.DocumentId}")
+ ' listboxLog.Items.Add($"ContainerId: {oDocObject.ContainerId}")
+ ' listboxLog.Items.Add($"Filename: {oDocObject.FileName}")
+ ' listboxLog.Items.Add($"----------------------------------------------------------")
+ ' Catch ex As Exception
+ ' ShowErrorMessage(ex)
+ ' End Try
+ 'End Sub
- Private Sub btnDocByContainerId_Click(sender As Object, e As EventArgs) Handles btnDocByContainerId.Click, Button2.Click
- Try
- Dim oContainerId As Int64 = Int64.Parse(TextBox2.Text)
- Dim oResult = _fileOp.GetDocumentByContainerId(oContainerId)
+ 'Private Sub btnDocByContainerId_Click(sender As Object, e As EventArgs)
+ ' Try
+ ' Dim oContainerId As Int64 = Int64.Parse(TextBox2.Text)
+ ' Dim oResult = _fileOp.GetDocumentByContainerId(oContainerId)
- If Not oResult.OK Then
- MsgBox(oResult.ErrorMessage)
- Exit Sub
- End If
+ ' If Not oResult.OK Then
+ ' MsgBox(oResult.ErrorMessage)
+ ' Exit Sub
+ ' End If
- Dim oDocObject = oResult.Document
+ ' Dim oDocObject = oResult.Document
- listboxLog.Items.Add($"Document fetched!")
- listboxLog.Items.Add($"DocId: {oDocObject.DocumentId}")
- listboxLog.Items.Add($"ContainerId: {oDocObject.ContainerId}")
- listboxLog.Items.Add($"Filename: {oDocObject.FileName}")
- listboxLog.Items.Add($"----------------------------------------------------------")
- Catch ex As Exception
- ShowErrorMessage(ex)
- End Try
- End Sub
+ ' listboxLog.Items.Add($"Document fetched!")
+ ' listboxLog.Items.Add($"DocId: {oDocObject.DocumentId}")
+ ' listboxLog.Items.Add($"ContainerId: {oDocObject.ContainerId}")
+ ' listboxLog.Items.Add($"Filename: {oDocObject.FileName}")
+ ' listboxLog.Items.Add($"----------------------------------------------------------")
+ ' Catch ex As Exception
+ ' ShowErrorMessage(ex)
+ ' End Try
+ 'End Sub
End Class
\ No newline at end of file
diff --git a/Modules.EDMIAPI/Channel.vb b/Modules.EDMIAPI/Channel.vb
index aa63c9ac..b08d4700 100644
--- a/Modules.EDMIAPI/Channel.vb
+++ b/Modules.EDMIAPI/Channel.vb
@@ -2,7 +2,7 @@
Imports System.Xml
Public Class Channel
- Public Shared Function GetBinding() As NetTcpBinding
+ 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,
@@ -11,7 +11,7 @@ Public Class Channel
.Security = New NetTcpSecurity() With {
.Mode = SecurityMode.Transport,
.Transport = New TcpTransportSecurity() With {
- .ClientCredentialType = TcpClientCredentialType.Windows
+ .ClientCredentialType = AuthenticationMode
}
},
.ReaderQuotas = New XmlDictionaryReaderQuotas() With {
diff --git a/Modules.EDMIAPI/Connected Services/IDBServiceReference/DigitalData.Modules.EDMIAPI.IDBServiceReference.DocumentResult2.datasource b/Modules.EDMIAPI/Connected Services/IDBServiceReference/DigitalData.Modules.EDMIAPI.IDBServiceReference.DocumentResult2.datasource
new file mode 100644
index 00000000..28e14490
--- /dev/null
+++ b/Modules.EDMIAPI/Connected Services/IDBServiceReference/DigitalData.Modules.EDMIAPI.IDBServiceReference.DocumentResult2.datasource
@@ -0,0 +1,10 @@
+
+
+
+ DigitalData.Modules.EDMIAPI.IDBServiceReference.DocumentResult2, Connected Services.IDBServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
+
\ No newline at end of file
diff --git a/Modules.EDMIAPI/Connected Services/IDBServiceReference/DigitalData.Services.IDBService.wsdl b/Modules.EDMIAPI/Connected Services/IDBServiceReference/DigitalData.Services.IDBService.wsdl
index ea56398f..e5ab9e5d 100644
--- a/Modules.EDMIAPI/Connected Services/IDBServiceReference/DigitalData.Services.IDBService.wsdl
+++ b/Modules.EDMIAPI/Connected Services/IDBServiceReference/DigitalData.Services.IDBService.wsdl
@@ -8,6 +8,7 @@
+
@@ -70,6 +71,12 @@
+
+
+
+
+
+
@@ -129,6 +136,10 @@
+
+
+
+
diff --git a/Modules.EDMIAPI/Connected Services/IDBServiceReference/DigitalData.Services.IDBService.xsd b/Modules.EDMIAPI/Connected Services/IDBServiceReference/DigitalData.Services.IDBService.xsd
index e7c74fda..209cb9e7 100644
--- a/Modules.EDMIAPI/Connected Services/IDBServiceReference/DigitalData.Services.IDBService.xsd
+++ b/Modules.EDMIAPI/Connected Services/IDBServiceReference/DigitalData.Services.IDBService.xsd
@@ -2,6 +2,7 @@
+
@@ -139,6 +140,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -149,7 +165,7 @@
-
+
@@ -163,14 +179,14 @@
-
+
-
+
@@ -180,7 +196,7 @@
-
+
diff --git a/Modules.EDMIAPI/Connected Services/IDBServiceReference/DigitalData.Services.IDBService1.xsd b/Modules.EDMIAPI/Connected Services/IDBServiceReference/DigitalData.Services.IDBService1.xsd
index 424ff5bc..8166c598 100644
--- a/Modules.EDMIAPI/Connected Services/IDBServiceReference/DigitalData.Services.IDBService1.xsd
+++ b/Modules.EDMIAPI/Connected Services/IDBServiceReference/DigitalData.Services.IDBService1.xsd
@@ -61,6 +61,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Modules.EDMIAPI/Connected Services/IDBServiceReference/Reference.svcmap b/Modules.EDMIAPI/Connected Services/IDBServiceReference/Reference.svcmap
index c1e1ecdb..f757fb08 100644
--- a/Modules.EDMIAPI/Connected Services/IDBServiceReference/Reference.svcmap
+++ b/Modules.EDMIAPI/Connected Services/IDBServiceReference/Reference.svcmap
@@ -1,5 +1,5 @@
-
+falsetrue
@@ -19,17 +19,18 @@
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/Modules.EDMIAPI/Connected Services/IDBServiceReference/Reference.vb b/Modules.EDMIAPI/Connected Services/IDBServiceReference/Reference.vb
index 4b4be068..8692d353 100644
--- a/Modules.EDMIAPI/Connected Services/IDBServiceReference/Reference.vb
+++ b/Modules.EDMIAPI/Connected Services/IDBServiceReference/Reference.vb
@@ -15,67 +15,68 @@ Imports System
Imports System.Runtime.Serialization
Namespace IDBServiceReference
-
-
+
+ _
Partial Public Class BaseResult
Inherits Object
Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
-
-
+
+ _
Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
-
-
+
+ _
Private ErrorMessageField As String
-
-
+
+ _
Private OKField As Boolean
-
-
+
+ _
Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData
Get
Return Me.extensionDataField
End Get
Set
- Me.extensionDataField = Value
+ Me.extensionDataField = value
End Set
End Property
-
-
+
+ _
Public Property ErrorMessage() As String
Get
Return Me.ErrorMessageField
End Get
Set
- If (Object.ReferenceEquals(Me.ErrorMessageField, Value) <> True) Then
- Me.ErrorMessageField = Value
+ If (Object.ReferenceEquals(Me.ErrorMessageField, value) <> true) Then
+ Me.ErrorMessageField = value
Me.RaisePropertyChanged("ErrorMessage")
End If
End Set
End Property
-
-
+
+ _
Public Property OK() As Boolean
Get
Return Me.OKField
End Get
Set
- If (Me.OKField.Equals(Value) <> True) Then
- Me.OKField = Value
+ 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
@@ -83,214 +84,317 @@ Namespace IDBServiceReference
End If
End Sub
End Class
-
-
+
+ _
Partial Public Class ScalarResult
Inherits IDBServiceReference.BaseResult
-
-
+
+ _
Private ScalarField As Object
-
-
+
+ _
Public Property Scalar() As Object
Get
Return Me.ScalarField
End Get
Set
- If (Object.ReferenceEquals(Me.ScalarField, Value) <> True) Then
- Me.ScalarField = Value
+ If (Object.ReferenceEquals(Me.ScalarField, value) <> true) Then
+ Me.ScalarField = value
Me.RaisePropertyChanged("Scalar")
End If
End Set
End Property
End Class
-
-
+
+ _
Partial Public Class NonQueryResult
Inherits IDBServiceReference.BaseResult
End Class
-
-
+
+ _
Partial Public Class DocumentResult
Inherits IDBServiceReference.BaseResult
-
+
Private ContentsField() As Byte
-
+
Private DocumentField As IDBServiceReference.DocumentObject
-
+
Private HasContentsField As Boolean
-
-
+
+ _
Public Property Contents() As Byte()
Get
Return Me.ContentsField
End Get
Set
- If (Object.ReferenceEquals(Me.ContentsField, Value) <> True) Then
- Me.ContentsField = Value
+ If (Object.ReferenceEquals(Me.ContentsField, value) <> true) Then
+ Me.ContentsField = value
Me.RaisePropertyChanged("Contents")
End If
End Set
End Property
-
-
+
+ _
Public Property Document() As IDBServiceReference.DocumentObject
Get
Return Me.DocumentField
End Get
Set
- If (Object.ReferenceEquals(Me.DocumentField, Value) <> True) Then
- Me.DocumentField = Value
+ If (Object.ReferenceEquals(Me.DocumentField, value) <> true) Then
+ Me.DocumentField = value
Me.RaisePropertyChanged("Document")
End If
End Set
End Property
-
-
+
+ _
Public Property HasContents() As Boolean
Get
Return Me.HasContentsField
End Get
Set
- If (Me.HasContentsField.Equals(Value) <> True) Then
- Me.HasContentsField = Value
+ If (Me.HasContentsField.Equals(value) <> true) Then
+ Me.HasContentsField = value
Me.RaisePropertyChanged("HasContents")
End If
End Set
End Property
End Class
-
-
+
+ _
+ Partial Public Class DocumentResult2
+ Inherits IDBServiceReference.BaseResult
+
+ Private ContentsField() As Byte
+
+ Private DocumentField As IDBServiceReference.DocumentResult2.DocumentObject
+
+ Private HasContentsField As Boolean
+
+ _
+ 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
+
+ _
+ Public Property Document() As IDBServiceReference.DocumentResult2.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
+
+ _
+ 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
+
+ _
+ Partial Public Class DocumentObject
+ Inherits Object
+ Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
+
+ _
+ Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
+
+ _
+ 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
+
+ _
+ 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
+
+ _
Partial Public Class IndexResult
Inherits IDBServiceReference.BaseResult
-
+
Private IndexIdField As Long
-
-
+
+ _
Public Property IndexId() As Long
Get
Return Me.IndexIdField
End Get
Set
- If (Me.IndexIdField.Equals(Value) <> True) Then
- Me.IndexIdField = Value
+ If (Me.IndexIdField.Equals(value) <> true) Then
+ Me.IndexIdField = value
Me.RaisePropertyChanged("IndexId")
End If
End Set
End Property
End Class
-
-
+
+ _
Partial Public Class TableResult
Inherits IDBServiceReference.BaseResult
-
-
+
+ _
Private TableField As System.Data.DataTable
-
-
+
+ _
Public Property Table() As System.Data.DataTable
Get
Return Me.TableField
End Get
Set
- If (Object.ReferenceEquals(Me.TableField, Value) <> True) Then
- Me.TableField = Value
+ If (Object.ReferenceEquals(Me.TableField, value) <> true) Then
+ Me.TableField = value
Me.RaisePropertyChanged("Table")
End If
End Set
End Property
End Class
-
-
+
+ _
Partial Public Class DocumentObject
Inherits Object
Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
-
-
+
+ _
Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
-
+
Private ContainerIdField As String
-
+
Private DocumentIdField As Long
-
+
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
+ Me.extensionDataField = value
End Set
End Property
-
-
+
+ _
Public Property ContainerId() As String
Get
Return Me.ContainerIdField
End Get
Set
- If (Object.ReferenceEquals(Me.ContainerIdField, Value) <> True) Then
- Me.ContainerIdField = Value
+ If (Object.ReferenceEquals(Me.ContainerIdField, value) <> true) Then
+ Me.ContainerIdField = value
Me.RaisePropertyChanged("ContainerId")
End If
End Set
End Property
-
-
+
+ _
Public Property DocumentId() As Long
Get
Return Me.DocumentIdField
End Get
Set
- If (Me.DocumentIdField.Equals(Value) <> True) Then
- Me.DocumentIdField = Value
+ If (Me.DocumentIdField.Equals(value) <> true) Then
+ Me.DocumentIdField = value
Me.RaisePropertyChanged("DocumentId")
End If
End Set
End Property
-
-
+
+ _
Public Property FileName() As String
Get
Return Me.FileNameField
End Get
Set
- If (Object.ReferenceEquals(Me.FileNameField, Value) <> True) Then
- Me.FileNameField = Value
+ 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
@@ -298,225 +402,239 @@ Namespace IDBServiceReference
End If
End Sub
End Class
-
-
+
+ _
Public Interface IIDBService
-
-
+
+ _
Function Heartbeat() As Boolean
-
-
+
+ _
Function HeartbeatAsync() As System.Threading.Tasks.Task(Of Boolean)
-
-
+
+ _
Function CreateDatabaseRequest(ByVal Name As String, ByVal Debug As Boolean) As String
-
-
+
+ _
Function CreateDatabaseRequestAsync(ByVal Name As String, ByVal Debug As Boolean) As System.Threading.Tasks.Task(Of String)
-
-
+
+ _
Sub CloseDatabaseRequest()
-
-
+
+ _
Function CloseDatabaseRequestAsync() As System.Threading.Tasks.Task
-
-
+
+ _
Function ReturnDatatable(ByVal SQL As String) As IDBServiceReference.TableResult
-
-
+
+ _
Function ReturnDatatableAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of IDBServiceReference.TableResult)
-
-
+
+ _
Function ReturnScalar(ByVal SQL As String) As IDBServiceReference.ScalarResult
-
-
+
+ _
Function ReturnScalarAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of IDBServiceReference.ScalarResult)
-
-
+
+ _
Function ExecuteNonQuery(ByVal SQL As String) As IDBServiceReference.NonQueryResult
-
-
+
+ _
Function ExecuteNonQueryAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of IDBServiceReference.NonQueryResult)
-
-
+
+ _
Function NewFile(ByVal FileName As String, ByVal Contents() As Byte) As IDBServiceReference.DocumentResult
-
-
+
+ _
Function NewFileAsync(ByVal FileName As String, ByVal Contents() As Byte) As System.Threading.Tasks.Task(Of IDBServiceReference.DocumentResult)
-
-
+
+ _
Function UpdateFile(ByVal DocObject As IDBServiceReference.DocumentObject, ByVal Contents() As Byte) As IDBServiceReference.DocumentResult
-
-
+
+ _
Function UpdateFileAsync(ByVal DocObject As IDBServiceReference.DocumentObject, ByVal Contents() As Byte) As System.Threading.Tasks.Task(Of IDBServiceReference.DocumentResult)
-
-
+
+ _
Function GetFile(ByVal DocObject As IDBServiceReference.DocumentObject) As IDBServiceReference.DocumentResult
-
-
+
+ _
Function GetFileAsync(ByVal DocObject As IDBServiceReference.DocumentObject) As System.Threading.Tasks.Task(Of IDBServiceReference.DocumentResult)
-
-
+
+ _
Function DeleteFile(ByVal DocObject As IDBServiceReference.DocumentObject) As Boolean
-
-
+
+ _
Function DeleteFileAsync(ByVal DocObject As IDBServiceReference.DocumentObject) As System.Threading.Tasks.Task(Of Boolean)
-
-
+
+ _
+ Function ImportFile(ByVal FileInfo As System.IO.FileInfo, ByVal Contents() As Byte) As IDBServiceReference.DocumentResult2
+
+ _
+ Function ImportFileAsync(ByVal FileInfo As System.IO.FileInfo, ByVal Contents() As Byte) As System.Threading.Tasks.Task(Of IDBServiceReference.DocumentResult2)
+
+ _
Function GetDocumentByDocumentId(ByVal DocumentId As Long) As IDBServiceReference.DocumentResult
-
-
+
+ _
Function GetDocumentByDocumentIdAsync(ByVal DocumentId As Long) As System.Threading.Tasks.Task(Of IDBServiceReference.DocumentResult)
-
-
+
+ _
Function GetDocumentByContainerId(ByVal ContainerId As String) As IDBServiceReference.DocumentResult
-
-
+
+ _
Function GetDocumentByContainerIdAsync(ByVal ContainerId As String) As System.Threading.Tasks.Task(Of IDBServiceReference.DocumentResult)
-
-
+
+ _
Function NewFileIndex(ByVal DocObject As IDBServiceReference.DocumentObject, ByVal Syskey As String, ByVal LanguageCode As String, ByVal Value As String) As IDBServiceReference.IndexResult
-
-
+
+ _
Function NewFileIndexAsync(ByVal DocObject As IDBServiceReference.DocumentObject, ByVal Syskey As String, ByVal LanguageCode As String, ByVal Value As String) As System.Threading.Tasks.Task(Of IDBServiceReference.IndexResult)
End Interface
-
-
+
+ _
Public Interface IIDBServiceChannel
Inherits IDBServiceReference.IIDBService, System.ServiceModel.IClientChannel
End Interface
-
-
+
+ _
Partial Public Class IDBServiceClient
Inherits System.ServiceModel.ClientBase(Of IDBServiceReference.IIDBService)
Implements IDBServiceReference.IIDBService
-
+
Public Sub New()
MyBase.New
End Sub
-
+
Public Sub New(ByVal endpointConfigurationName As String)
MyBase.New(endpointConfigurationName)
End Sub
-
+
Public Sub New(ByVal endpointConfigurationName As String, ByVal remoteAddress As String)
MyBase.New(endpointConfigurationName, remoteAddress)
End Sub
-
+
Public Sub New(ByVal endpointConfigurationName As String, ByVal remoteAddress As System.ServiceModel.EndpointAddress)
MyBase.New(endpointConfigurationName, remoteAddress)
End Sub
-
+
Public Sub New(ByVal binding As System.ServiceModel.Channels.Binding, ByVal remoteAddress As System.ServiceModel.EndpointAddress)
MyBase.New(binding, remoteAddress)
End Sub
-
+
Public Function Heartbeat() As Boolean Implements IDBServiceReference.IIDBService.Heartbeat
Return MyBase.Channel.Heartbeat
End Function
-
+
Public Function HeartbeatAsync() As System.Threading.Tasks.Task(Of Boolean) Implements IDBServiceReference.IIDBService.HeartbeatAsync
Return MyBase.Channel.HeartbeatAsync
End Function
-
+
Public Function CreateDatabaseRequest(ByVal Name As String, ByVal Debug As Boolean) As String Implements IDBServiceReference.IIDBService.CreateDatabaseRequest
Return MyBase.Channel.CreateDatabaseRequest(Name, Debug)
End Function
-
+
Public Function CreateDatabaseRequestAsync(ByVal Name As String, ByVal Debug As Boolean) As System.Threading.Tasks.Task(Of String) Implements IDBServiceReference.IIDBService.CreateDatabaseRequestAsync
Return MyBase.Channel.CreateDatabaseRequestAsync(Name, Debug)
End Function
-
+
Public Sub CloseDatabaseRequest() Implements IDBServiceReference.IIDBService.CloseDatabaseRequest
- MyBase.Channel.CloseDatabaseRequest()
+ MyBase.Channel.CloseDatabaseRequest
End Sub
-
+
Public Function CloseDatabaseRequestAsync() As System.Threading.Tasks.Task Implements IDBServiceReference.IIDBService.CloseDatabaseRequestAsync
Return MyBase.Channel.CloseDatabaseRequestAsync
End Function
-
+
Public Function ReturnDatatable(ByVal SQL As String) As IDBServiceReference.TableResult Implements IDBServiceReference.IIDBService.ReturnDatatable
Return MyBase.Channel.ReturnDatatable(SQL)
End Function
-
+
Public Function ReturnDatatableAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of IDBServiceReference.TableResult) Implements IDBServiceReference.IIDBService.ReturnDatatableAsync
Return MyBase.Channel.ReturnDatatableAsync(SQL)
End Function
-
+
Public Function ReturnScalar(ByVal SQL As String) As IDBServiceReference.ScalarResult Implements IDBServiceReference.IIDBService.ReturnScalar
Return MyBase.Channel.ReturnScalar(SQL)
End Function
-
+
Public Function ReturnScalarAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of IDBServiceReference.ScalarResult) Implements IDBServiceReference.IIDBService.ReturnScalarAsync
Return MyBase.Channel.ReturnScalarAsync(SQL)
End Function
-
+
Public Function ExecuteNonQuery(ByVal SQL As String) As IDBServiceReference.NonQueryResult Implements IDBServiceReference.IIDBService.ExecuteNonQuery
Return MyBase.Channel.ExecuteNonQuery(SQL)
End Function
-
+
Public Function ExecuteNonQueryAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of IDBServiceReference.NonQueryResult) Implements IDBServiceReference.IIDBService.ExecuteNonQueryAsync
Return MyBase.Channel.ExecuteNonQueryAsync(SQL)
End Function
-
+
Public Function NewFile(ByVal FileName As String, ByVal Contents() As Byte) As IDBServiceReference.DocumentResult Implements IDBServiceReference.IIDBService.NewFile
Return MyBase.Channel.NewFile(FileName, Contents)
End Function
-
+
Public Function NewFileAsync(ByVal FileName As String, ByVal Contents() As Byte) As System.Threading.Tasks.Task(Of IDBServiceReference.DocumentResult) Implements IDBServiceReference.IIDBService.NewFileAsync
Return MyBase.Channel.NewFileAsync(FileName, Contents)
End Function
-
+
Public Function UpdateFile(ByVal DocObject As IDBServiceReference.DocumentObject, ByVal Contents() As Byte) As IDBServiceReference.DocumentResult Implements IDBServiceReference.IIDBService.UpdateFile
Return MyBase.Channel.UpdateFile(DocObject, Contents)
End Function
-
+
Public Function UpdateFileAsync(ByVal DocObject As IDBServiceReference.DocumentObject, ByVal Contents() As Byte) As System.Threading.Tasks.Task(Of IDBServiceReference.DocumentResult) Implements IDBServiceReference.IIDBService.UpdateFileAsync
Return MyBase.Channel.UpdateFileAsync(DocObject, Contents)
End Function
-
+
Public Function GetFile(ByVal DocObject As IDBServiceReference.DocumentObject) As IDBServiceReference.DocumentResult Implements IDBServiceReference.IIDBService.GetFile
Return MyBase.Channel.GetFile(DocObject)
End Function
-
+
Public Function GetFileAsync(ByVal DocObject As IDBServiceReference.DocumentObject) As System.Threading.Tasks.Task(Of IDBServiceReference.DocumentResult) Implements IDBServiceReference.IIDBService.GetFileAsync
Return MyBase.Channel.GetFileAsync(DocObject)
End Function
-
+
Public Function DeleteFile(ByVal DocObject As IDBServiceReference.DocumentObject) As Boolean Implements IDBServiceReference.IIDBService.DeleteFile
Return MyBase.Channel.DeleteFile(DocObject)
End Function
-
+
Public Function DeleteFileAsync(ByVal DocObject As IDBServiceReference.DocumentObject) As System.Threading.Tasks.Task(Of Boolean) Implements IDBServiceReference.IIDBService.DeleteFileAsync
Return MyBase.Channel.DeleteFileAsync(DocObject)
End Function
-
+
+ Public Function ImportFile(ByVal FileInfo As System.IO.FileInfo, ByVal Contents() As Byte) As IDBServiceReference.DocumentResult2 Implements IDBServiceReference.IIDBService.ImportFile
+ Return MyBase.Channel.ImportFile(FileInfo, Contents)
+ End Function
+
+ Public Function ImportFileAsync(ByVal FileInfo As System.IO.FileInfo, ByVal Contents() As Byte) As System.Threading.Tasks.Task(Of IDBServiceReference.DocumentResult2) Implements IDBServiceReference.IIDBService.ImportFileAsync
+ Return MyBase.Channel.ImportFileAsync(FileInfo, Contents)
+ End Function
+
Public Function GetDocumentByDocumentId(ByVal DocumentId As Long) As IDBServiceReference.DocumentResult Implements IDBServiceReference.IIDBService.GetDocumentByDocumentId
Return MyBase.Channel.GetDocumentByDocumentId(DocumentId)
End Function
-
+
Public Function GetDocumentByDocumentIdAsync(ByVal DocumentId As Long) As System.Threading.Tasks.Task(Of IDBServiceReference.DocumentResult) Implements IDBServiceReference.IIDBService.GetDocumentByDocumentIdAsync
Return MyBase.Channel.GetDocumentByDocumentIdAsync(DocumentId)
End Function
-
+
Public Function GetDocumentByContainerId(ByVal ContainerId As String) As IDBServiceReference.DocumentResult Implements IDBServiceReference.IIDBService.GetDocumentByContainerId
Return MyBase.Channel.GetDocumentByContainerId(ContainerId)
End Function
-
+
Public Function GetDocumentByContainerIdAsync(ByVal ContainerId As String) As System.Threading.Tasks.Task(Of IDBServiceReference.DocumentResult) Implements IDBServiceReference.IIDBService.GetDocumentByContainerIdAsync
Return MyBase.Channel.GetDocumentByContainerIdAsync(ContainerId)
End Function
-
+
Public Function NewFileIndex(ByVal DocObject As IDBServiceReference.DocumentObject, ByVal Syskey As String, ByVal LanguageCode As String, ByVal Value As String) As IDBServiceReference.IndexResult Implements IDBServiceReference.IIDBService.NewFileIndex
Return MyBase.Channel.NewFileIndex(DocObject, Syskey, LanguageCode, Value)
End Function
-
+
Public Function NewFileIndexAsync(ByVal DocObject As IDBServiceReference.DocumentObject, ByVal Syskey As String, ByVal LanguageCode As String, ByVal Value As String) As System.Threading.Tasks.Task(Of IDBServiceReference.IndexResult) Implements IDBServiceReference.IIDBService.NewFileIndexAsync
Return MyBase.Channel.NewFileIndexAsync(DocObject, Syskey, LanguageCode, Value)
End Function
diff --git a/Modules.EDMIAPI/Connected Services/IDBServiceReference/System.IO.xsd b/Modules.EDMIAPI/Connected Services/IDBServiceReference/System.IO.xsd
new file mode 100644
index 00000000..68a2b9b7
--- /dev/null
+++ b/Modules.EDMIAPI/Connected Services/IDBServiceReference/System.IO.xsd
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Modules.EDMIAPI/Connected Services/IDBServiceReference/configuration.svcinfo b/Modules.EDMIAPI/Connected Services/IDBServiceReference/configuration.svcinfo
index a6d3d6aa..d435b878 100644
--- a/Modules.EDMIAPI/Connected Services/IDBServiceReference/configuration.svcinfo
+++ b/Modules.EDMIAPI/Connected Services/IDBServiceReference/configuration.svcinfo
@@ -2,7 +2,7 @@
-
+
diff --git a/Modules.EDMIAPI/Connected Services/IDBServiceReference/configuration91.svcinfo b/Modules.EDMIAPI/Connected Services/IDBServiceReference/configuration91.svcinfo
index 4f58cb92..df824480 100644
--- a/Modules.EDMIAPI/Connected Services/IDBServiceReference/configuration91.svcinfo
+++ b/Modules.EDMIAPI/Connected Services/IDBServiceReference/configuration91.svcinfo
@@ -1,5 +1,5 @@
-
+
@@ -105,8 +105,8 @@
(Sammlung)
-
- Tls, Tls11, Tls12
+
+ NoneSystem.ServiceModel.Configuration.MessageSecurityOverTcpElement
diff --git a/Modules.EDMIAPI/Connected Services/IDBServiceReference/service.wsdl b/Modules.EDMIAPI/Connected Services/IDBServiceReference/service.wsdl
index 9883cd39..cc11f8c7 100644
--- a/Modules.EDMIAPI/Connected Services/IDBServiceReference/service.wsdl
+++ b/Modules.EDMIAPI/Connected Services/IDBServiceReference/service.wsdl
@@ -129,6 +129,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/Modules.EDMIAPI/Document.vb b/Modules.EDMIAPI/Document.vb
index d3f57042..5f1feb51 100644
--- a/Modules.EDMIAPI/Document.vb
+++ b/Modules.EDMIAPI/Document.vb
@@ -68,6 +68,26 @@ Public Class Document
End Try
End Function
+ '''
+ ''' Imports a file by filename
+ '''
+ ''' The filename to import
+ ''' A document object
+ Public Async Function ImportFile2(FilePath As String) As Task(Of DocumentResult2)
+ 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 oResult = Await _channel.ImportFileAsync(oInfo, oContents)
+ Return oResult
+ Catch ex As Exception
+ _logger.Error(ex)
+ Throw ex
+ End Try
+ End Function
+
'''
''' Imports a file by filename
'''
diff --git a/Modules.EDMIAPI/EDMIAPI.vbproj b/Modules.EDMIAPI/EDMIAPI.vbproj
index 30062d20..37518408 100644
--- a/Modules.EDMIAPI/EDMIAPI.vbproj
+++ b/Modules.EDMIAPI/EDMIAPI.vbproj
@@ -109,6 +109,9 @@
Reference.svcmap
+
+ Reference.svcmap
+ Reference.svcmap
@@ -138,6 +141,9 @@
Designer
+
+ Designer
+ Designer
@@ -155,6 +161,12 @@
+
+
+ {903b2d7d-3b80-4be9-8713-7447b704e1b0}
+ Logging
+
+
@@ -170,11 +182,5 @@
Reference.vb
-
-
- {903b2d7d-3b80-4be9-8713-7447b704e1b0}
- Logging
-
-
\ No newline at end of file
diff --git a/Modules.EDMIAPI/app.config b/Modules.EDMIAPI/app.config
index d3b30754..46aaf5fc 100644
--- a/Modules.EDMIAPI/app.config
+++ b/Modules.EDMIAPI/app.config
@@ -25,7 +25,11 @@
-
+
+
+
+
+
diff --git a/SERVICES/DDEDM_NetworkService/App.config b/SERVICES/DDEDM_NetworkService/App.config
index bcf47c3c..eed07e40 100644
--- a/SERVICES/DDEDM_NetworkService/App.config
+++ b/SERVICES/DDEDM_NetworkService/App.config
@@ -1,26 +1,22 @@
-
+
-
+
-
-
-
+
-
+
-
-
-
+
-
-
-
+
@@ -34,12 +30,20 @@
-
+
+
-
-
+
+
+
+
+
diff --git a/SERVICES/DDEDM_NetworkService/IDBService.vb b/SERVICES/DDEDM_NetworkService/IDBService.vb
index bfbf3ee6..5f313fca 100644
--- a/SERVICES/DDEDM_NetworkService/IDBService.vb
+++ b/SERVICES/DDEDM_NetworkService/IDBService.vb
@@ -1,9 +1,9 @@
Imports System.ServiceModel
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging
-Imports System.IO
Imports DigitalData.Modules.Filesystem
Imports DigitalData.Services.IDBService
+Imports System.IO
Public Class IDBService
@@ -31,17 +31,16 @@ Public Class IDBService
#Region "Auth"
Private Function TestUserAuth() As Boolean
Try
- Dim oSQL As String = $"SELECT FNIDB_AUTH_USER('{_username}') FROM RDB$DATABASE;"
- Dim oResult As Boolean = Database.GetScalarValue(oSQL)
-
- Return oResult
+ 'Dim oSQL As String = $"SELECT FNIDB_AUTH_USER('{_username}') FROM RDB$DATABASE;"
+ 'Dim oResult As Boolean = Database.GetScalarValue(oSQL)
+ 'Return oResult
+ Return True
Catch ex As Exception
_logger.Error(ex)
Return False
End Try
End Function
#End Region
-
#Region "Heartbeat"
Public Function Heartbeat() As Boolean Implements IIDBService.Heartbeat
Return True
@@ -129,7 +128,7 @@ Public Class IDBService
#End Region
-#Region "Document"
+#Region "Document (with FileContainer)"
Public Function NewFile(FileName As String, Contents() As Byte) As DocumentResult Implements IIDBService.NewFile
Try
Dim oContainer As FileContainer
@@ -237,6 +236,35 @@ Public Class IDBService
End Sub
#End Region
+#Region "Document"
+ Public Function ImportFile(FileInfo As FileInfo, Contents() As Byte) As DocumentResult2 Implements IIDBService.ImportFile
+ Dim oFilePath = Path.Combine(AppConfig.ContainerPath, FileInfo.Name)
+ Dim oDocument = New DocumentResult2.DocumentObject() With {.FileName = FileInfo.Name}
+
+ Try
+ _logger.Info("Saving file [{0}] to path [{1}]", FileInfo.Name, oFilePath)
+ Using oStream = New FileStream(oFilePath, FileMode.CreateNew)
+ oStream.Write(Contents, 0, Contents.Length)
+ oStream.Flush(True)
+ oStream.Close()
+ End Using
+
+ Dim oAttributes = IO.File.GetAttributes(oFilePath) Or FileAttributes.ReadOnly
+
+ _logger.Info("Setting LastAccessTime")
+ IO.File.SetLastAccessTime(oFilePath, Date.Now.AddYears(30))
+
+ _logger.Info("Setting ReadOnly Attribute")
+ IO.File.SetAttributes(oFilePath, oAttributes)
+
+ Return New DocumentResult2(oDocument)
+ Catch ex As Exception
+ _logger.Error(ex)
+ Return New DocumentResult2(ex.Message)
+ End Try
+ End Function
+#End Region
+
#Region "Utils"
Public Function GetDocumentByDocumentId(DocumentId As Long) As DocumentResult Implements IIDBService.GetDocumentByDocumentId
Try
diff --git a/SERVICES/DDEDM_NetworkService/IDBService.vbproj b/SERVICES/DDEDM_NetworkService/IDBService.vbproj
index 24016a7d..e12c5c86 100644
--- a/SERVICES/DDEDM_NetworkService/IDBService.vbproj
+++ b/SERVICES/DDEDM_NetworkService/IDBService.vbproj
@@ -90,6 +90,7 @@
+ Component
diff --git a/SERVICES/DDEDM_NetworkService/IIDBService.vb b/SERVICES/DDEDM_NetworkService/IIDBService.vb
index d6482826..f072a38d 100644
--- a/SERVICES/DDEDM_NetworkService/IIDBService.vb
+++ b/SERVICES/DDEDM_NetworkService/IIDBService.vb
@@ -1,4 +1,5 @@
-Imports System.ServiceModel
+Imports System.IO
+Imports System.ServiceModel
Imports DigitalData.Modules.Filesystem
@@ -26,7 +27,7 @@ Interface IIDBService
Function ExecuteNonQuery(SQL As String) As NonQueryResult
#End Region
-#Region "Document"
+#Region "Document (with FileContainer)"
Function NewFile(FileName As String, Contents As Byte()) As DocumentResult
@@ -38,8 +39,11 @@ Interface IIDBService
Function DeleteFile(DocObject As DocumentObject) As Boolean
+#End Region
-
+#Region "Document (New)"
+
+ Function ImportFile(FileInfo As FileInfo, Contents As Byte()) As DocumentResult2
#End Region
#Region "Utils"
diff --git a/SERVICES/DDEDM_NetworkService/Results/DocumentResult2.vb b/SERVICES/DDEDM_NetworkService/Results/DocumentResult2.vb
new file mode 100644
index 00000000..7bd46302
--- /dev/null
+++ b/SERVICES/DDEDM_NetworkService/Results/DocumentResult2.vb
@@ -0,0 +1,28 @@
+
+Public Class DocumentResult2
+ Inherits BaseResult
+
+ Public Document As DocumentObject
+ Public HasContents As Boolean = False
+ Public Contents As Byte()
+
+ Public Sub New(Document As DocumentObject)
+ MyBase.New()
+ Me.Document = Document
+ End Sub
+
+ Public Sub New(Document As DocumentObject, Contents As Byte())
+ MyBase.New()
+ Me.Document = Document
+ Me.Contents = Contents
+ Me.HasContents = True
+ End Sub
+
+ Public Sub New(ErrorMessage As String)
+ MyBase.New(ErrorMessage)
+ End Sub
+
+ Public Class DocumentObject
+ Public FileName As String
+ End Class
+End Class