42 lines
1.7 KiB
VB.net
42 lines
1.7 KiB
VB.net
Imports DigitalData.Modules.Database
|
|
Imports DigitalData.Modules.Logging
|
|
|
|
Namespace Methods.IDB.GetAttributeValue
|
|
Public Class GetAttributeValueMethod
|
|
Inherits BaseMethod
|
|
|
|
Public Sub New(pLogConfig As LogConfig, pDatabaseIDB As MSSQLServer, pDatabaseECM As MSSQLServer, pGlobalState As GlobalState)
|
|
MyBase.New(pLogConfig, pDatabaseIDB, pDatabaseECM, pGlobalState)
|
|
End Sub
|
|
|
|
Public Function Run(pData As GetAttributeValueRequest) As GetAttributeValueResponse
|
|
Try
|
|
If Helpers.TestObjectIdExists(pData.ObjectId) = False Then
|
|
LogAndThrow("ObjectId does not exist!")
|
|
End If
|
|
|
|
Dim oSQL As String = $"SELECT TERM_VALUE FROM FNIDB_GET_VARIABLE_VALUE ({pData.ObjectId}, '{pData.AttributeName}', '{pData.User.Language}')"
|
|
Dim oTable As DataTable = DatabaseIDB.GetDatatable(oSQL)
|
|
|
|
If oTable Is Nothing Then
|
|
Throw New ApplicationException($"Error while getting value for Attribute '{pData.AttributeName}'!")
|
|
End If
|
|
|
|
If oTable.Rows.Count = 0 Then
|
|
Throw New KeyNotFoundException($"Attribute '{pData.AttributeName}' is empty!")
|
|
End If
|
|
|
|
Dim oRow As DataRow = oTable.Rows.Item(0)
|
|
Dim oValue As Object = oRow.Item("TERM_VALUE")
|
|
|
|
Return New GetAttributeValueResponse(pData.ObjectId, oValue)
|
|
|
|
Catch ex As Exception
|
|
Logger.Warn("Error occurred while getting attribute value!")
|
|
Logger.Error(ex)
|
|
Return New GetAttributeValueResponse(ex)
|
|
|
|
End Try
|
|
End Function
|
|
End Class
|
|
End Namespace |