2023-11-06 11:38:00 +01:00

82 lines
3.0 KiB
VB.net

Imports System.Data.SqlClient
Public Class ElementStatusModel
Inherits BaseModel
Public Sub New(pState As State)
MyBase.New(pState)
End Sub
Public Function Insert(pElementStatus As ElementStatus) As Boolean
Try
Dim oSql = "INSERT INTO [dbo].[TBSIG_ELEMENT_STATUS]
([ENVELOPE_ID]
,[RECEIVER_ELEMENT_ID]
,[STATUS]
,[STATUS_CHANGED_WHEN]
,[VALUE])
VALUES
(@ENVELOPE_ID
,@ELEMENT_ID
,@STATUS
,@STATUS_CHANGED_WHEN
,@VALUE)"
Dim oCommand As New SqlCommand(oSql)
oCommand.Parameters.Add("ENVELOPE_ID", SqlDbType.Int).Value = pElementStatus.EnvelopeId
oCommand.Parameters.Add("ELEMENT_ID", SqlDbType.Int).Value = pElementStatus.ElementId
oCommand.Parameters.Add("STATUS", SqlDbType.Int).Value = pElementStatus.Status
oCommand.Parameters.Add("STATUS_CHANGED_WHEN", SqlDbType.DateTime).Value = Now()
oCommand.Parameters.Add("VALUE", SqlDbType.NVarChar).Value = pElementStatus.ElementValue
If Database.ExecuteNonQuery(oCommand) Then
pElementStatus.Id = GetElementId(pElementStatus)
Return True
Else
Return False
End If
Catch ex As Exception
Logger.Error(ex)
Return False
End Try
End Function
Public Function Update(pElementStatus As ElementStatus) As Boolean
Try
Dim oSql = "UPDATE [dbo].[TBSIG_ELEMENT_STATUS]
SET [STATUS] = @STATUS
,[STATUS_CHANGED_WHEN] = @STATUS_CHANGED_WHEN
,[CHANGED_WHEN] = @CHANGED_WHEN
,[VALUE] = @VALUE
WHERE GUID = @GUID"
Dim oCommand As New SqlCommand(oSql)
oCommand.Parameters.Add("GUID", SqlDbType.Int).Value = pElementStatus.Id
oCommand.Parameters.Add("STATUS", SqlDbType.Int).Value = pElementStatus.Status
oCommand.Parameters.Add("STATUS_CHANGED_WHEN", SqlDbType.DateTime).Value = Now()
oCommand.Parameters.Add("CHANGED_WHEN", SqlDbType.DateTime).Value = Now()
oCommand.Parameters.Add("VALUE", SqlDbType.NVarChar).Value = pElementStatus.ElementValue
If Database.ExecuteNonQuery(oCommand) Then
Return True
Else
Return False
End If
Catch ex As Exception
Logger.Error(ex)
Return False
End Try
End Function
Private Function GetElementId(pElement As ElementStatus) As Integer
Try
Return Database.GetScalarValue($"SELECT MAX(GUID) FROM TBSIG_ELEMENT_STATUS
WHERE ENVELOPE_ID = {pElement.EnvelopeId} AND RECEIVER_ELEMENT_ID = {pElement.ElementId}")
Catch ex As Exception
Logger.Error(ex)
Return Nothing
End Try
End Function
End Class