diff --git a/Modules.EDMIAPI/Client.vb b/Modules.EDMIAPI/Client.vb index c5ec8046..86c2c344 100644 --- a/Modules.EDMIAPI/Client.vb +++ b/Modules.EDMIAPI/Client.vb @@ -375,46 +375,22 @@ Public Class Client pOptions = New Options.GetVariableValueOptions() End If - ' Check if ObjectId exists Try - Dim oResponse = Channel.TestObjectIdExists(New TestObjectIdExistsRequest With {.ObjectId = pObjectId}) - If oResponse.Exists = False Then + Dim oArgs = New GetAttributeValueRequest With { + .ObjectId = pObjectId, + .AttributeName = pAttributeName, + .User = New UserState() With { + .UserName = pOptions.Username, + .Language = pOptions.Language + } + } + Dim oResponse = Channel.GetAttributeValue(oArgs) + If oResponse.OK = False Then Return New VariableValue() End If - Catch ex As Exception - Logger.Error(ex) - Return New VariableValue() - - End Try - - Try - ' Get Attributes and Values from Database - Dim oAttributes As List(Of ObjectAttribute) = GetAttributesForObject(pObjectId, pOptions.Language) - - If oAttributes Is Nothing Then - Return New VariableValue() - End If - - Dim oValues = oAttributes.AsEnumerable(). - Where(Function(pAttr) - Return pAttr.Title.ToUpper = pAttributeName.ToUpper - End Function). - Select(Function(pAttr) pAttr.Value). - ToList() - - ' Either return a list or a single value or nothing, always wrapped in VariableValue - If oValues.Count > 1 Then - Return New VariableValue(oValues) - - ElseIf oValues.Count = 1 Then - Return New VariableValue(oValues.First()) - - Else - Return New VariableValue() - - End If + Return New VariableValue(oResponse.Value) Catch ex As Exception Logger.Error(ex) diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetAttributeValueResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetAttributeValueResponse.datasource new file mode 100644 index 00000000..396f87b7 --- /dev/null +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.GetAttributeValueResponse.datasource @@ -0,0 +1,10 @@ + + + + DigitalData.Modules.EDMI.API.EDMIServiceReference.GetAttributeValueResponse, 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.Methods.IDB.GetAttributeValue.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.GetAttributeValue.xsd new file mode 100644 index 00000000..42fbf75b --- /dev/null +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.GetAttributeValue.xsd @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl index 6704c25c..8b12f002 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl @@ -21,6 +21,7 @@ + @@ -174,6 +175,12 @@ + + + + + + @@ -314,6 +321,10 @@ + + + + diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd index 3235b93d..c0e93896 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd @@ -9,6 +9,7 @@ + @@ -275,31 +276,45 @@ + + + + + + + + + + + + + + - + - + - + - + @@ -313,7 +328,7 @@ - + @@ -329,7 +344,7 @@ - + diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap index c01950b4..a8367d73 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap @@ -43,6 +43,7 @@ + diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb index 7896d60c..6544a971 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb @@ -30,6 +30,7 @@ Namespace EDMIServiceReference System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NewFileResponse)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.UpdateFileResponse)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.SetAttributeValueResponse)), _ + System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetAttributeValueResponse)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileResponse)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetFileObjectResponse)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetClientConfigResponse))> _ @@ -170,6 +171,8 @@ Namespace EDMIServiceReference System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.UpdateFileResponse)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.SetAttributeValueRequest)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.SetAttributeValueResponse)), _ + System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetAttributeValueRequest)), _ + System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetAttributeValueResponse)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileRequest)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileResponse)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetFileObjectRequest)), _ @@ -267,6 +270,8 @@ Namespace EDMIServiceReference System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.UpdateFileResponse)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.SetAttributeValueRequest)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.SetAttributeValueResponse)), _ + System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetAttributeValueRequest)), _ + System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetAttributeValueResponse)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileRequest)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileResponse)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetFileObjectRequest)), _ @@ -393,6 +398,87 @@ Namespace EDMIServiceReference End Property End Class + _ + Partial Public Class GetAttributeValueResponse + Inherits EDMIServiceReference.BaseResponse + + _ + Private ObjectIdField As Long + + _ + Private ValueField As Object + + _ + 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 + + _ + Public Property Value() As Object + Get + Return Me.ValueField + End Get + Set + If (Object.ReferenceEquals(Me.ValueField, value) <> true) Then + Me.ValueField = value + Me.RaisePropertyChanged("Value") + End If + End Set + End Property + End Class + _ + Partial Public Class GetAttributeValueRequest + Inherits Object + Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged + + _ + Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject + + _ + Private AttributeNameField As String + + _ + Private ObjectIdField As Long + + _ + Private UserField As EDMIServiceReference.UserState + + _ + 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 AttributeName() As String + Get + Return Me.AttributeNameField + End Get + Set + If (Object.ReferenceEquals(Me.AttributeNameField, value) <> true) Then + Me.AttributeNameField = value + Me.RaisePropertyChanged("AttributeName") + End If + End Set + End Property + + _ + 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 + + _ + Public Property User() As EDMIServiceReference.UserState + Get + Return Me.UserField + End Get + Set + If (Object.ReferenceEquals(Me.UserField, value) <> true) Then + Me.UserField = value + Me.RaisePropertyChanged("User") + 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 + _ Function SetAttributeValueAsync(ByVal Data As EDMIServiceReference.SetAttributeValueRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.SetAttributeValueResponse) + _ + Function GetAttributeValue(ByVal Data As EDMIServiceReference.GetAttributeValueRequest) As EDMIServiceReference.GetAttributeValueResponse + + _ + Function GetAttributeValueAsync(ByVal Data As EDMIServiceReference.GetAttributeValueRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.GetAttributeValueResponse) + _ Function ImportFile(ByVal Data As EDMIServiceReference.ImportFileRequest) As EDMIServiceReference.ImportFileResponse @@ -2657,6 +2829,14 @@ Namespace EDMIServiceReference Return MyBase.Channel.SetAttributeValueAsync(Data) End Function + Public Function GetAttributeValue(ByVal Data As EDMIServiceReference.GetAttributeValueRequest) As EDMIServiceReference.GetAttributeValueResponse Implements EDMIServiceReference.IEDMIService.GetAttributeValue + Return MyBase.Channel.GetAttributeValue(Data) + End Function + + Public Function GetAttributeValueAsync(ByVal Data As EDMIServiceReference.GetAttributeValueRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.GetAttributeValueResponse) Implements EDMIServiceReference.IEDMIService.GetAttributeValueAsync + Return MyBase.Channel.GetAttributeValueAsync(Data) + End Function + Public Function ImportFile(ByVal Data As EDMIServiceReference.ImportFileRequest) As EDMIServiceReference.ImportFileResponse Implements EDMIServiceReference.IEDMIService.ImportFile Return MyBase.Channel.ImportFile(Data) End Function diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl index 370573f4..db3f426a 100644 --- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl +++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl @@ -245,6 +245,15 @@ + + + + + + + + + diff --git a/Modules.EDMIAPI/EDMI.API.vbproj b/Modules.EDMIAPI/EDMI.API.vbproj index a13ed06c..536ddaa3 100644 --- a/Modules.EDMIAPI/EDMI.API.vbproj +++ b/Modules.EDMIAPI/EDMI.API.vbproj @@ -131,6 +131,9 @@ Reference.svcmap + + Reference.svcmap + Reference.svcmap @@ -200,6 +203,9 @@ Designer + + Designer + Designer diff --git a/Service.EDMIService/EDMIService.vb b/Service.EDMIService/EDMIService.vb index 665540c6..8651b8ae 100644 --- a/Service.EDMIService/EDMIService.vb +++ b/Service.EDMIService/EDMIService.vb @@ -10,7 +10,6 @@ Imports DigitalData.Modules.EDMI.API.Rights Imports DigitalData.Services.EDMIService.Messages Imports DigitalData.Services.EDMIService.Exceptions Imports DigitalData.Services.EDMIService.Methods -Imports DigitalData.Services.EDMIService.Methods.SetAttributeValue Imports DigitalData.Services.EDMIService.Methods.Database Imports DigitalData.Services.EDMIService.Methods.IDB @@ -92,6 +91,12 @@ Public Class EDMIService Return oSetAttributeValue.Run(Data) End Function + Public Function GetAttributeValue(Data As GetAttributeValue.GetAttributeValueRequest) As GetAttributeValue.GetAttributeValueResponse Implements IEDMIService.GetAttributeValue + _Logger.Debug("Start of Method [GetAttributeValue]") + Dim oGetAttributeValue As New GetAttributeValue.GetAttributeValueMethod(LogConfig, MSSQL_IDB, MSSQL_ECM, GlobalState) + Return oGetAttributeValue.Run(Data) + End Function + Public Function ImportFile(pData As GlobalIndexer.ImportFile.ImportFileRequest) As GlobalIndexer.ImportFile.ImportFileResponse Implements IEDMIService.ImportFile _Logger.Debug("Start of Method [ImportFile]") Dim oImportFile As New GlobalIndexer.ImportFile.ImportFileMethod(LogConfig, MSSQL_IDB, MSSQL_ECM, GlobalState) diff --git a/Service.EDMIService/IEDMIService.vb b/Service.EDMIService/IEDMIService.vb index 03476a69..3c231594 100644 --- a/Service.EDMIService/IEDMIService.vb +++ b/Service.EDMIService/IEDMIService.vb @@ -89,6 +89,9 @@ Interface IEDMIService Function SetAttributeValue(Data As SetAttributeValue.SetAttributeValueRequest) As SetAttributeValue.SetAttributeValueResponse + + Function GetAttributeValue(Data As GetAttributeValue.GetAttributeValueRequest) As GetAttributeValue.GetAttributeValueResponse + Function ImportFile(Data As GlobalIndexer.ImportFile.ImportFileRequest) As GlobalIndexer.ImportFile.ImportFileResponse