From 3149b8fa35a1620da4c0ba39c6a0a9c18ffa21d8 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Thu, 25 Nov 2021 15:54:48 +0100 Subject: [PATCH] EDMI.API: Update for Annette GmbH --- Modules.EDMIAPI/Client.vb | 120 ++-- Modules.EDMIAPI/Client/NewFile.vb | 11 + ...eference.DocumentImportResponse.datasource | 10 - ...mportFileIntoFileObjectResponse.datasource | 10 - ...Reference.NewFileObjectResponse.datasource | 10 - ...rviceReference.NewFileResponse.datasource} | 4 +- ...rvices.EDMIService.FileStorage.NewFile.xsd | 29 + ...italData.Services.EDMIService.Messages.xsd | 10 +- .../DigitalData.Services.EDMIService.wsdl | 71 +- .../DigitalData.Services.EDMIService.xsd | 69 +- .../EDMIServiceReference/Reference.svcmap | 1 + .../EDMIServiceReference/Reference.vb | 604 +++++++----------- .../EDMIServiceReference/service.wsdl | 47 +- Modules.EDMIAPI/DatabaseWithFallback.vb | 14 - Modules.EDMIAPI/EDMI.API.vbproj | 19 +- 15 files changed, 365 insertions(+), 664 deletions(-) create mode 100644 Modules.EDMIAPI/Client/NewFile.vb delete mode 100644 Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentImportResponse.datasource delete mode 100644 Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ImportFileIntoFileObjectResponse.datasource delete mode 100644 Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileObjectResponse.datasource rename Modules.EDMIAPI/Connected Services/EDMIServiceReference/{DigitalData.Modules.EDMI.API.EDMIServiceReference.NewObjectIdResponse.datasource => DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileResponse.datasource} (57%) create mode 100644 Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.FileStorage.NewFile.xsd diff --git a/Modules.EDMIAPI/Client.vb b/Modules.EDMIAPI/Client.vb index 06d1b313..2ebe819b 100644 --- a/Modules.EDMIAPI/Client.vb +++ b/Modules.EDMIAPI/Client.vb @@ -17,29 +17,9 @@ Public Class Client Private _dummy_table_attributes As DataTable Private _channel As IEDMIServiceChannel + Private _FileEx As FileSystem.File - ''' - ''' Parse a IPAddress:Port String into its parts - ''' - ''' - ''' - Public Shared Function ParseServiceAddress(AddressWithOptionalPort As String) As Tuple(Of String, Integer) - Dim oSplit() As String = AddressWithOptionalPort.Split(":"c) - Dim oAppServerAddress As String = oSplit(0) - Dim oAppServerPort As Integer - - If oSplit.Length = 2 Then - If Integer.TryParse(oSplit(1), oAppServerPort) Then - oAppServerPort = DEFAULT_SERVICE_PORT - End If - Else - oAppServerPort = DEFAULT_SERVICE_PORT - End If - - Return New Tuple(Of String, Integer)(oAppServerAddress, oAppServerPort) - End Function - ''' ''' Creates a new EDMI Client object ''' @@ -47,6 +27,7 @@ Public Class Client ''' The IP address/hostname and port, separated by semicolon or colon, ex localhost:9000 Public Sub New(LogConfig As LogConfig, ServiceAdress As String) _logger = LogConfig.GetLogger() + _FileEx = New Filesystem.File(LogConfig) Dim oServiceAddress As String = ServiceAdress Dim oAddressArray() As String @@ -58,6 +39,7 @@ Public Class Client End If Try + _IPAddressServer = oAddressArray(0) Dim oBinding = Channel.GetBinding() Dim oAddress = New EndpointAddress($"net.tcp://{oAddressArray(0)}:{oAddressArray(1)}/DigitalData/Services/Main") Dim oFactory = New ChannelFactory(Of IEDMIServiceChannel)(oBinding, oAddress) @@ -76,6 +58,7 @@ Public Class Client ''' The Port number to use for the connection Public Sub New(LogConfig As LogConfig, IPAddress As String, PortNumber As Integer) _logger = LogConfig.GetLogger() + _FileEx = New Filesystem.File(LogConfig) Try _IPAddressServer = IPAddress @@ -89,6 +72,27 @@ Public Class Client End Try End Sub + ''' + ''' Parse a IPAddress:Port String into its parts + ''' + ''' + ''' + Public Shared Function ParseServiceAddress(AddressWithOptionalPort As String) As Tuple(Of String, Integer) + Dim oSplit() As String = AddressWithOptionalPort.Split(":"c) + Dim oAppServerAddress As String = oSplit(0) + Dim oAppServerPort As Integer + + If oSplit.Length = 2 Then + If Integer.TryParse(oSplit(1), oAppServerPort) Then + oAppServerPort = DEFAULT_SERVICE_PORT + End If + Else + oAppServerPort = DEFAULT_SERVICE_PORT + End If + + Return New Tuple(Of String, Integer)(oAppServerAddress, oAppServerPort) + End Function + ''' ''' Connect to the service ''' @@ -109,26 +113,16 @@ Public Class Client End Try End Function - ''' - ''' TODO: Creates a new object - ''' - ''' - Public Async Function NewObjectAsync() As Task - Throw New NotImplementedException() - End Function - - - ''' ''' Imports a file from a filepath, creating a IDB ObjectId and Filesystem Object ''' - ''' Type of ObjectStore. Can be WORK or ARCHIVE. + ''' Type of ObjectStore. Can be WORK or ARCHIVE. ''' Business entity that the new file object should belong to. ''' Other file import options ''' When local filepath was not found ''' When there was a error in the Service ''' The ObjectId of the newly generated filesystem object - Public Async Function NewFileAsync(pFilePath As String, pObjectStoreType As String, pBusinessEntity As String, Optional pImportOptions As NewFileOptions = Nothing) As Task(Of Long) + Public Async Function NewFileAsync(pFilePath As String, pObjectStoreName As String, pObjectKind As String, pBusinessEntity As String, Optional pImportOptions As NewFileOptions = Nothing) As Task(Of Long) Try ' Set default options If pImportOptions Is Nothing Then @@ -137,35 +131,16 @@ Public Class Client ' Check if file exists If File.Exists(pFilePath) = False Then - Throw New FileNotFoundException("ImportFileAsync: Path does not exist") + Throw New FileNotFoundException("Path does not exist") End If Dim oFileInfo As New FileInfo(pFilePath) Dim oExtension As String = oFileInfo.Extension - ' Creating new ObjectId - Dim oObjectIdResponse = Await _channel.NewObjectIdAsync(New NewObjectIdRequest With { - .BusinessEntity = pBusinessEntity, - .KindType = KIND_TYPE_DOC, - .Who = pImportOptions.Username - }) - - If oObjectIdResponse.ObjectId = Nothing OrElse oObjectIdResponse.ObjectId = 0 Then - Throw New ApplicationException("ImportFileAsync: Could not get ObjectId") - End If - - ' Create new FileObject for ObjectId - Dim oFilePathResponse = Await _channel.NewFileObjectAsync(New NewFileObjectRequest With { - .DateImported = pImportOptions.DateImported, - .Extension = oExtension, - .KeepExtension = pImportOptions.KeepExtension, - .ObjectId = oObjectIdResponse.ObjectId, - .StoreType = pObjectStoreType - }) - - If oFilePathResponse.FileObjectPath = Nothing OrElse oFilePathResponse.FileObjectPath = "" Then - Throw New ApplicationException("ImportFileAsync: Could not get FileObject Path") - End If + Dim oFileName As String = oFileInfo.Name + Dim oFileCreatedAt As Date = oFileInfo?.CreationTime + Dim oFileModifiedAt As Date = oFileInfo?.LastWriteTime + Dim oFileHash As String = _FileEx.GetChecksum(oFileInfo.FullName) ' Importing the file now Using oFileStream As New FileStream(pFilePath, FileMode.Open, FileAccess.Read) @@ -173,21 +148,26 @@ Public Class Client oFileStream.CopyTo(oMemoryStream) Dim oContents = oMemoryStream.ToArray() - Dim oFileImportResponse = Await _channel.ImportFileIntoFileObjectAsync(New ImportFileIntoFileObjectRequest With { - .FilePath = oFilePathResponse.FileObjectPath, - .ObjectId = oObjectIdResponse.ObjectId, - .ObjectStoreType = pObjectStoreType, - .Who = pImportOptions.Username, - .Contents = oContents + Dim oFileImportResponse = Await _channel.NewFileAsync(New NewFileRequest With { + .BusinessEntity = pBusinessEntity, + .FileName = oFileInfo.Name, + .FileCreatedAt = oFileCreatedAt, + .FileChangedAt = oFileModifiedAt, + .FileContents = oContents, + .FileImportedAt = pImportOptions.DateImported, + .FileChecksum = oFileHash, + .KindType = pObjectKind, + .StoreName = pObjectStoreName, + .Who = pImportOptions.Username }) - If oFileImportResponse.Result = False Then - Throw New ApplicationException("ImportFileAsync: Could not Import File Contents") + If oFileImportResponse.OK = False Then + Throw New ApplicationException("Could not Import File Contents!") End If + + Return oFileImportResponse.ObjectId End Using End Using - - Return oObjectIdResponse.ObjectId Catch ex As Exception _logger.Error(ex) Return INVALID_OBEJCT_ID @@ -650,15 +630,15 @@ Public Class Client ''' ''' Option to keep the original extension when importing. Defaults to false. ''' - Public KeepExtension As Boolean = False + Public Property KeepExtension As Boolean = False ''' ''' Windows username of the user responsible for the import. Defaults to the currently logged in user. ''' - Public Username As String = Environment.UserName + Public Property Username As String = Environment.UserName ''' ''' Date when the file was imported. Can be in the past. Defaults to now. ''' - Public DateImported As Date = Date.Now + Public Property DateImported As Date = Date.Now End Class Public Class NewObjectOptions diff --git a/Modules.EDMIAPI/Client/NewFile.vb b/Modules.EDMIAPI/Client/NewFile.vb new file mode 100644 index 00000000..7410fcff --- /dev/null +++ b/Modules.EDMIAPI/Client/NewFile.vb @@ -0,0 +1,11 @@ +Imports DigitalData.Modules.Logging + +Public Class NewFile + Private ReadOnly LogConfig As LogConfig + Private ReadOnly Logger As Logger + + Public Sub New(pLogConfig As LogConfig) + LogConfig = pLogConfig + Logger = LogConfig.GetLogger() + End Sub +End Class diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentImportResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentImportResponse.datasource deleted file mode 100644 index 0cb66122..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentImportResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentImportResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ImportFileIntoFileObjectResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ImportFileIntoFileObjectResponse.datasource deleted file mode 100644 index b7120ba7..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.ImportFileIntoFileObjectResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.ImportFileIntoFileObjectResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileObjectResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileObjectResponse.datasource deleted file mode 100644 index 6ee8711d..00000000 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileObjectResponse.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileObjectResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NewObjectIdResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileResponse.datasource similarity index 57% rename from Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NewObjectIdResponse.datasource rename to Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileResponse.datasource index dbc88508..bebd9f37 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NewObjectIdResponse.datasource +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileResponse.datasource @@ -5,6 +5,6 @@ Renaming the file extension or editing the content of this file may cause the file to be unrecognizable by the program. --> - - DigitalData.Modules.EDMI.API.EDMIServiceReference.NewObjectIdResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + + DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.FileStorage.NewFile.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.FileStorage.NewFile.xsd new file mode 100644 index 00000000..25e09256 --- /dev/null +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.FileStorage.NewFile.xsd @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Messages.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Messages.xsd index 943f1763..f4dfa1da 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Messages.xsd +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Messages.xsd @@ -2,7 +2,7 @@ - + @@ -23,16 +23,16 @@ - + - + - + @@ -42,7 +42,7 @@ - + diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl index ed64d5c1..5efb2b85 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl @@ -8,6 +8,7 @@ + @@ -111,14 +112,11 @@ - - + + - - - - - + + @@ -130,10 +128,10 @@ - + - + @@ -142,41 +140,14 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -185,7 +156,7 @@ - + @@ -243,10 +214,9 @@ - - - - + + + @@ -264,21 +234,6 @@ - - - - - - - - - - - - - - - diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd index 0d6d3c7c..08e87d36 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd @@ -1,6 +1,7 @@  + @@ -157,21 +158,17 @@ - + - - - - - + - + - + @@ -185,7 +182,7 @@ - + @@ -201,7 +198,7 @@ - + @@ -226,58 +223,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap index 2d855184..24ee6ee1 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap @@ -30,6 +30,7 @@ + diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb index 71f60112..ab76c8c5 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb @@ -18,13 +18,14 @@ Namespace EDMIServiceReference _ - Partial Public Class BaseResult + Partial Public Class BaseResponse Inherits Object Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged @@ -89,7 +90,7 @@ Namespace EDMIServiceReference ""), _ System.SerializableAttribute(), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.TableResult)), _ - System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.BaseResult)), _ + System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.BaseResponse)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NonQueryResult)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(System.DBNull)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(System.Exception)), _ @@ -97,9 +98,11 @@ Namespace EDMIServiceReference System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.BaseFault)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.DataTableDoesNotExistFault)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ObjectDoesNotExistFault)), _ + System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NewFileRequest)), _ + System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NewFileResponse)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.RightsAccessRight))> _ Partial Public Class ScalarResult - Inherits EDMIServiceReference.BaseResult + Inherits EDMIServiceReference.BaseResponse _ Private ScalarField As Object @@ -124,7 +127,32 @@ Namespace EDMIServiceReference ""), _ System.SerializableAttribute()> _ Partial Public Class NonQueryResult - Inherits EDMIServiceReference.BaseResult + Inherits EDMIServiceReference.BaseResponse + End Class + + _ + Partial Public Class NewFileResponse + Inherits EDMIServiceReference.BaseResponse + + _ + Private ObjectIdField As Long + + _ + Public Property ObjectId() As Long + Get + Return Me.ObjectIdField + End Get + Set + If (Me.ObjectIdField.Equals(value) <> true) Then + Me.ObjectIdField = value + Me.RaisePropertyChanged("ObjectId") + End If + End Set + End Property End Class _ Partial Public Class TableResult - Inherits EDMIServiceReference.BaseResult + Inherits EDMIServiceReference.BaseResponse _ Private TableField As System.Data.DataTable @@ -262,6 +290,198 @@ Namespace EDMIServiceReference Inherits EDMIServiceReference.BaseFault End Class + _ + Partial Public Class NewFileRequest + Inherits Object + Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged + + _ + Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject + + _ + Private BusinessEntityField As String + + _ + Private FileChangedAtField As String + + _ + Private FileChecksumField As String + + _ + Private FileContentsField() As Byte + + _ + Private FileCreatedAtField As String + + _ + Private FileImportedAtField As Date + + _ + Private FileNameField As String + + _ + Private KindTypeField As String + + _ + Private StoreNameField As String + + _ + Private WhoField 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 BusinessEntity() As String + Get + Return Me.BusinessEntityField + End Get + Set + If (Object.ReferenceEquals(Me.BusinessEntityField, value) <> true) Then + Me.BusinessEntityField = value + Me.RaisePropertyChanged("BusinessEntity") + End If + End Set + End Property + + _ + Public Property FileChangedAt() As String + Get + Return Me.FileChangedAtField + End Get + Set + If (Object.ReferenceEquals(Me.FileChangedAtField, value) <> true) Then + Me.FileChangedAtField = value + Me.RaisePropertyChanged("FileChangedAt") + End If + End Set + End Property + + _ + Public Property FileChecksum() As String + Get + Return Me.FileChecksumField + End Get + Set + If (Object.ReferenceEquals(Me.FileChecksumField, value) <> true) Then + Me.FileChecksumField = value + Me.RaisePropertyChanged("FileChecksum") + End If + End Set + End Property + + _ + Public Property FileContents() As Byte() + Get + Return Me.FileContentsField + End Get + Set + If (Object.ReferenceEquals(Me.FileContentsField, value) <> true) Then + Me.FileContentsField = value + Me.RaisePropertyChanged("FileContents") + End If + End Set + End Property + + _ + Public Property FileCreatedAt() As String + Get + Return Me.FileCreatedAtField + End Get + Set + If (Object.ReferenceEquals(Me.FileCreatedAtField, value) <> true) Then + Me.FileCreatedAtField = value + Me.RaisePropertyChanged("FileCreatedAt") + End If + End Set + End Property + + _ + Public Property FileImportedAt() As Date + Get + Return Me.FileImportedAtField + End Get + Set + If (Me.FileImportedAtField.Equals(value) <> true) Then + Me.FileImportedAtField = value + Me.RaisePropertyChanged("FileImportedAt") + 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 + Me.RaisePropertyChanged("FileName") + End If + End Set + End Property + + _ + Public Property KindType() As String + Get + Return Me.KindTypeField + End Get + Set + If (Object.ReferenceEquals(Me.KindTypeField, value) <> true) Then + Me.KindTypeField = value + Me.RaisePropertyChanged("KindType") + End If + End Set + End Property + + _ + Public Property StoreName() As String + Get + Return Me.StoreNameField + End Get + Set + If (Object.ReferenceEquals(Me.StoreNameField, value) <> true) Then + Me.StoreNameField = value + Me.RaisePropertyChanged("StoreName") + End If + End Set + End Property + + _ + Public Property Who() As String + Get + Return Me.WhoField + End Get + Set + If (Object.ReferenceEquals(Me.WhoField, value) <> true) Then + Me.WhoField = value + Me.RaisePropertyChanged("Who") + 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 + _ Public Enum RightsAccessRight As Integer @@ -399,15 +619,11 @@ Namespace EDMIServiceReference "ponse")> _ Function ExecuteNonQuery_MSSQL_ECMAsync(ByVal SQL As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NonQueryResult) - 'CODEGEN: Der Nachrichtenvertrag wird generiert, da der Wrappername (DocumentImportRequest) von Nachricht "DocumentImportRequest" nicht mit dem Standardwert (ImportFile) übereinstimmt. - _ - Function ImportFile(ByVal request As EDMIServiceReference.DocumentImportRequest) As EDMIServiceReference.DocumentImportResponse + _ + Function NewFile(ByVal Data As EDMIServiceReference.NewFileRequest) As EDMIServiceReference.NewFileResponse - _ - Function ImportFileAsync(ByVal request As EDMIServiceReference.DocumentImportRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentImportResponse) + _ + Function NewFileAsync(ByVal Data As EDMIServiceReference.NewFileRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.NewFileResponse) 'CODEGEN: Der Nachrichtenvertrag wird generiert, da der Wrappername (DocumentStreamRequest) von Nachricht "DocumentStreamRequest" nicht mit dem Standardwert (GetFileByObjectId) übereinstimmt. _ Function ListFilesForUserAsync(ByVal request As EDMIServiceReference.ListFilesForUserRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.DocumentListResponse) - 'CODEGEN: Der Nachrichtenvertrag wird generiert, da der Wrappername (NewObjectIdRequest) von Nachricht "NewObjectIdRequest" nicht mit dem Standardwert (NewObjectId) übereinstimmt. - _ - Function NewObjectId(ByVal request As EDMIServiceReference.NewObjectIdRequest) As EDMIServiceReference.NewObjectIdResponse - - _ - Function NewObjectIdAsync(ByVal request As EDMIServiceReference.NewObjectIdRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.NewObjectIdResponse) - - 'CODEGEN: Der Nachrichtenvertrag wird generiert, da der Wrappername (NewFileObjectRequest) von Nachricht "NewFileObjectRequest" nicht mit dem Standardwert (NewFileObject) übereinstimmt. - _ - Function NewFileObject(ByVal request As EDMIServiceReference.NewFileObjectRequest) As EDMIServiceReference.NewFileObjectResponse - - _ - Function NewFileObjectAsync(ByVal request As EDMIServiceReference.NewFileObjectRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.NewFileObjectResponse) - - 'CODEGEN: Der Nachrichtenvertrag wird generiert, da der Wrappername (ImportFileIntoFileObjectRequest) von Nachricht "ImportFileIntoFileObjectRequest" nicht mit dem Standardwert (ImportFileIntoFileObject) übereinstimmt. - _ - Function ImportFileIntoFileObject(ByVal request As EDMIServiceReference.ImportFileIntoFileObjectRequest) As EDMIServiceReference.ImportFileIntoFileObjectResponse - - _ - Function ImportFileIntoFileObjectAsync(ByVal request As EDMIServiceReference.ImportFileIntoFileObjectRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.ImportFileIntoFileObjectResponse) - _ - Partial Public Class DocumentImportRequest - - _ - Public Contents() As Byte - - _ - Public DocumentType As String - - _ - Public FileName As String - - _ - Public ObjectStoreId As Long - - _ - 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 - - _ - Partial Public Class DocumentImportResponse - - _ - Public ObjectId As Long - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ObjectId As Long) - MyBase.New - Me.ObjectId = ObjectId - End Sub - End Class - _ - Partial Public Class NewObjectIdRequest - - _ - Public BusinessEntity As String - - _ - Public KindType As String - - _ - Public Who As String - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal BusinessEntity As String, ByVal KindType As String, ByVal Who As String) - MyBase.New - Me.BusinessEntity = BusinessEntity - Me.KindType = KindType - Me.Who = Who - End Sub - End Class - - _ - Partial Public Class NewObjectIdResponse - - _ - Public ObjectId As Long - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ObjectId As Long) - MyBase.New - Me.ObjectId = ObjectId - End Sub - End Class - - _ - Partial Public Class NewFileObjectRequest - - _ - Public DateImported As Date - - _ - Public Extension As String - - _ - Public KeepExtension As Boolean - - _ - Public ObjectId As Long - - _ - Public StoreType As String - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal DateImported As Date, ByVal Extension As String, ByVal KeepExtension As Boolean, ByVal ObjectId As Long, ByVal StoreType As String) - MyBase.New - Me.DateImported = DateImported - Me.Extension = Extension - Me.KeepExtension = KeepExtension - Me.ObjectId = ObjectId - Me.StoreType = StoreType - End Sub - End Class - - _ - Partial Public Class NewFileObjectResponse - - _ - Public FileObjectPath As String - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal FileObjectPath As String) - MyBase.New - Me.FileObjectPath = FileObjectPath - End Sub - End Class - - _ - Partial Public Class ImportFileIntoFileObjectRequest - - _ - Public Contents() As Byte - - _ - Public FilePath As String - - _ - Public ObjectId As Long - - _ - Public ObjectStoreType As String - - _ - Public Who As String - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal Contents() As Byte, ByVal FilePath As String, ByVal ObjectId As Long, ByVal ObjectStoreType As String, ByVal Who As String) - MyBase.New - Me.Contents = Contents - Me.FilePath = FilePath - Me.ObjectId = ObjectId - Me.ObjectStoreType = ObjectStoreType - Me.Who = Who - End Sub - End Class - - _ - Partial Public Class ImportFileIntoFileObjectResponse - - _ - Public Result As Boolean - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal Result As Boolean) - MyBase.New - Me.Result = Result - End Sub - End Class - _ @@ -974,35 +950,12 @@ Namespace EDMIServiceReference Return MyBase.Channel.ExecuteNonQuery_MSSQL_ECMAsync(SQL) End Function - _ - Function EDMIServiceReference_IEDMIService_ImportFile(ByVal request As EDMIServiceReference.DocumentImportRequest) As EDMIServiceReference.DocumentImportResponse Implements EDMIServiceReference.IEDMIService.ImportFile - Return MyBase.Channel.ImportFile(request) + Public Function NewFile(ByVal Data As EDMIServiceReference.NewFileRequest) As EDMIServiceReference.NewFileResponse Implements EDMIServiceReference.IEDMIService.NewFile + Return MyBase.Channel.NewFile(Data) End Function - Public Function ImportFile(ByVal Contents() As Byte, ByVal DocumentType As String, ByVal FileName As String, ByVal ObjectStoreId As Long, ByVal RetentionDays As Long) As Long - Dim inValue As EDMIServiceReference.DocumentImportRequest = New EDMIServiceReference.DocumentImportRequest() - inValue.Contents = Contents - 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 - - _ - 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) + Public Function NewFileAsync(ByVal Data As EDMIServiceReference.NewFileRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.NewFileResponse) Implements EDMIServiceReference.IEDMIService.NewFileAsync + Return MyBase.Channel.NewFileAsync(Data) End Function _ @@ -1068,95 +1021,6 @@ Namespace EDMIServiceReference Return CType(Me,EDMIServiceReference.IEDMIService).ListFilesForUserAsync(inValue) End Function - _ - Function EDMIServiceReference_IEDMIService_NewObjectId(ByVal request As EDMIServiceReference.NewObjectIdRequest) As EDMIServiceReference.NewObjectIdResponse Implements EDMIServiceReference.IEDMIService.NewObjectId - Return MyBase.Channel.NewObjectId(request) - End Function - - Public Function NewObjectId(ByVal BusinessEntity As String, ByVal KindType As String, ByVal Who As String) As Long - Dim inValue As EDMIServiceReference.NewObjectIdRequest = New EDMIServiceReference.NewObjectIdRequest() - inValue.BusinessEntity = BusinessEntity - inValue.KindType = KindType - inValue.Who = Who - Dim retVal As EDMIServiceReference.NewObjectIdResponse = CType(Me,EDMIServiceReference.IEDMIService).NewObjectId(inValue) - Return retVal.ObjectId - End Function - - _ - Function EDMIServiceReference_IEDMIService_NewObjectIdAsync(ByVal request As EDMIServiceReference.NewObjectIdRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.NewObjectIdResponse) Implements EDMIServiceReference.IEDMIService.NewObjectIdAsync - Return MyBase.Channel.NewObjectIdAsync(request) - End Function - - Public Function NewObjectIdAsync(ByVal BusinessEntity As String, ByVal KindType As String, ByVal Who As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NewObjectIdResponse) - Dim inValue As EDMIServiceReference.NewObjectIdRequest = New EDMIServiceReference.NewObjectIdRequest() - inValue.BusinessEntity = BusinessEntity - inValue.KindType = KindType - inValue.Who = Who - Return CType(Me,EDMIServiceReference.IEDMIService).NewObjectIdAsync(inValue) - End Function - - _ - Function EDMIServiceReference_IEDMIService_NewFileObject(ByVal request As EDMIServiceReference.NewFileObjectRequest) As EDMIServiceReference.NewFileObjectResponse Implements EDMIServiceReference.IEDMIService.NewFileObject - Return MyBase.Channel.NewFileObject(request) - End Function - - Public Function NewFileObject(ByVal DateImported As Date, ByVal Extension As String, ByVal KeepExtension As Boolean, ByVal ObjectId As Long, ByVal StoreType As String) As String - Dim inValue As EDMIServiceReference.NewFileObjectRequest = New EDMIServiceReference.NewFileObjectRequest() - inValue.DateImported = DateImported - inValue.Extension = Extension - inValue.KeepExtension = KeepExtension - inValue.ObjectId = ObjectId - inValue.StoreType = StoreType - Dim retVal As EDMIServiceReference.NewFileObjectResponse = CType(Me,EDMIServiceReference.IEDMIService).NewFileObject(inValue) - Return retVal.FileObjectPath - End Function - - _ - Function EDMIServiceReference_IEDMIService_NewFileObjectAsync(ByVal request As EDMIServiceReference.NewFileObjectRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.NewFileObjectResponse) Implements EDMIServiceReference.IEDMIService.NewFileObjectAsync - Return MyBase.Channel.NewFileObjectAsync(request) - End Function - - Public Function NewFileObjectAsync(ByVal DateImported As Date, ByVal Extension As String, ByVal KeepExtension As Boolean, ByVal ObjectId As Long, ByVal StoreType As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.NewFileObjectResponse) - Dim inValue As EDMIServiceReference.NewFileObjectRequest = New EDMIServiceReference.NewFileObjectRequest() - inValue.DateImported = DateImported - inValue.Extension = Extension - inValue.KeepExtension = KeepExtension - inValue.ObjectId = ObjectId - inValue.StoreType = StoreType - Return CType(Me,EDMIServiceReference.IEDMIService).NewFileObjectAsync(inValue) - End Function - - _ - Function EDMIServiceReference_IEDMIService_ImportFileIntoFileObject(ByVal request As EDMIServiceReference.ImportFileIntoFileObjectRequest) As EDMIServiceReference.ImportFileIntoFileObjectResponse Implements EDMIServiceReference.IEDMIService.ImportFileIntoFileObject - Return MyBase.Channel.ImportFileIntoFileObject(request) - End Function - - Public Function ImportFileIntoFileObject(ByVal Contents() As Byte, ByVal FilePath As String, ByVal ObjectId As Long, ByVal ObjectStoreType As String, ByVal Who As String) As Boolean - Dim inValue As EDMIServiceReference.ImportFileIntoFileObjectRequest = New EDMIServiceReference.ImportFileIntoFileObjectRequest() - inValue.Contents = Contents - inValue.FilePath = FilePath - inValue.ObjectId = ObjectId - inValue.ObjectStoreType = ObjectStoreType - inValue.Who = Who - Dim retVal As EDMIServiceReference.ImportFileIntoFileObjectResponse = CType(Me,EDMIServiceReference.IEDMIService).ImportFileIntoFileObject(inValue) - Return retVal.Result - End Function - - _ - Function EDMIServiceReference_IEDMIService_ImportFileIntoFileObjectAsync(ByVal request As EDMIServiceReference.ImportFileIntoFileObjectRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.ImportFileIntoFileObjectResponse) Implements EDMIServiceReference.IEDMIService.ImportFileIntoFileObjectAsync - Return MyBase.Channel.ImportFileIntoFileObjectAsync(request) - End Function - - Public Function ImportFileIntoFileObjectAsync(ByVal Contents() As Byte, ByVal FilePath As String, ByVal ObjectId As Long, ByVal ObjectStoreType As String, ByVal Who As String) As System.Threading.Tasks.Task(Of EDMIServiceReference.ImportFileIntoFileObjectResponse) - Dim inValue As EDMIServiceReference.ImportFileIntoFileObjectRequest = New EDMIServiceReference.ImportFileIntoFileObjectRequest() - inValue.Contents = Contents - inValue.FilePath = FilePath - inValue.ObjectId = ObjectId - inValue.ObjectStoreType = ObjectStoreType - inValue.Who = Who - Return CType(Me,EDMIServiceReference.IEDMIService).ImportFileIntoFileObjectAsync(inValue) - End Function - _ Function EDMIServiceReference_IEDMIService_TestObjectIdExists(ByVal request As EDMIServiceReference.TestObjectIdExistsRequest) As EDMIServiceReference.TestObjectIdExistsResponse Implements EDMIServiceReference.IEDMIService.TestObjectIdExists Return MyBase.Channel.TestObjectIdExists(request) diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl index 84c376ce..e4080760 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl @@ -173,17 +173,14 @@ - - - + + + - + - - - @@ -225,42 +222,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules.EDMIAPI/DatabaseWithFallback.vb b/Modules.EDMIAPI/DatabaseWithFallback.vb index 78326af2..716a7d5b 100644 --- a/Modules.EDMIAPI/DatabaseWithFallback.vb +++ b/Modules.EDMIAPI/DatabaseWithFallback.vb @@ -33,20 +33,6 @@ Public Class DatabaseWithFallback _DatabaseIDB = DatabaseIDB End Sub - ''' - ''' Attempt at making loading big tables less annoying - ''' - ''' - Public Function GetDatatable(pTable As TableType, Optional FilterExpression As String = "", Optional SortByColumn As String = "", Optional ForceFallback As Boolean = False) - Dim oTable = Tables.Where(Function(t) t.DatabaseType = pTable).SingleOrDefault() - - If oTable Is Nothing Then - Return Nothing - Else - Return GetDatatable(oTable.TableName, oTable.SQLCommand, oTable.DatabaseType, FilterExpression, SortByColumn, ForceFallback) - End If - End Function - Public Function GetDatatable(pDataTableName As String, pFallbackSQL As String, pFallbackType As Constants.DatabaseType, Optional pFilterExpression As String = "", Optional pSortByColumn As String = "", Optional pForceFallback As Boolean = False) As DataTable Try Dim oResult As DataTable = Nothing diff --git a/Modules.EDMIAPI/EDMI.API.vbproj b/Modules.EDMIAPI/EDMI.API.vbproj index 5a2c4f1a..bd268a61 100644 --- a/Modules.EDMIAPI/EDMI.API.vbproj +++ b/Modules.EDMIAPI/EDMI.API.vbproj @@ -72,6 +72,7 @@ + @@ -108,9 +109,6 @@ - - Reference.svcmap - Reference.svcmap @@ -120,13 +118,7 @@ Reference.svcmap - - Reference.svcmap - - - Reference.svcmap - - + Reference.svcmap @@ -150,6 +142,9 @@ Designer + + Designer + Designer @@ -190,6 +185,10 @@ {eaf0ea75-5fa7-485d-89c7-b2d843b03a96} Database + + {991d0231-4623-496d-8bd0-9ca906029cbc} + Filesystem + {d3c8cfed-d6f6-43a8-9bdf-454145d0352f} Language