EDMI: Add 3-tier database access in DatabaseWithFallback, add client config,

EDMI Service: Version 2.4.0.0
EDMI: API: Version 1.4.0.0
This commit is contained in:
Jonathan Jenne
2022-01-14 11:48:32 +01:00
parent 7d46951b60
commit bcbfba37b2
58 changed files with 1192 additions and 416 deletions

View File

@@ -0,0 +1,41 @@
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Database
Imports DigitalData.Services.EDMIService.IDB
Imports System.Data.SqlClient
Namespace Methods.IDB.SetAttributeValue
Public Class SetAttributeValueMethod
Inherits BaseMethod
Private Connection As SqlConnection
Private Transaction As SqlTransaction
Public Sub New(pLogConfig As LogConfig, pDatabaseIDB As MSSQLServer, pDatabaseECM As MSSQLServer, pGlobalState As GlobalState)
MyBase.New(pLogConfig, pDatabaseIDB, pDatabaseECM, pGlobalState)
Connection = DatabaseIDB.GetConnection()
Transaction = Connection.BeginTransaction()
End Sub
Public Function Run(pData As SetAttributeValueRequest) As SetAttributeValueResponse
Try
If Helpers.TestObjectIdExists(pData.ObjectId) = False Then
LogAndThrow("ObjectId does not exist!")
End If
Dim oResult = Helpers.SetAttributeValue(Connection, Transaction,
pData.ObjectId, pData.AttributeName, pData.AttributeValue, pData.Language, pData.Who)
If oResult = False Then
LogAndThrow("Attribute value could not be set!")
End If
Return New SetAttributeValueResponse(pData.ObjectId)
Catch ex As Exception
Logger.Warn("Error occurred while setting attribute value!")
Return New SetAttributeValueResponse(ex)
End Try
End Function
End Class
End Namespace

View File

@@ -0,0 +1,25 @@
Imports System.Runtime.Serialization
Namespace Methods.IDB.SetAttributeValue
<Serializable>
<DataContract>
Public Class SetAttributeValueRequest
''' <summary>
''' Object Id
''' </summary>
<DataMember>
Public Property ObjectId As Long
<DataMember>
Public Property AttributeName As String
<DataMember>
Public Property AttributeValue As String
<DataMember>
Public Property Who As Long
<DataMember>
Public Property Language As String
End Class
End Namespace

View File

@@ -0,0 +1,22 @@
Imports System.Runtime.Serialization
Namespace Methods.IDB.SetAttributeValue
<Serializable>
<DataContract>
Public Class SetAttributeValueResponse
Inherits Messages.BaseResponse
<DataMember>
Public Property ObjectId As Long
Public Sub New(pObjectId As Long)
MyBase.New()
ObjectId = pObjectId
End Sub
Public Sub New(pException As Exception, Optional pDetails As String = "")
MyBase.New(pException, pDetails)
End Sub
End Class
End Namespace