193 lines
7.2 KiB
VB.net
193 lines
7.2 KiB
VB.net
Imports System.Data
|
|
Imports System.Data.Common
|
|
Imports System.Data.SqlClient
|
|
Imports DigitalData.Modules.Base
|
|
Public Class ReceiverModel
|
|
Inherits BaseModel
|
|
|
|
Public Sub New(pState As State)
|
|
MyBase.New(pState)
|
|
End Sub
|
|
|
|
Private Function ToReceiver(pRow As DataRow) As EnvelopeReceiver
|
|
Return New EnvelopeReceiver() With {
|
|
.Id = pRow.ItemEx("GUID", 0),
|
|
.Email = pRow.ItemEx("EMAIL_ADDRESS", ""),
|
|
.Name = pRow.ItemEx("NAME", ""),
|
|
.Sequence = pRow.ItemEx("SEQUENCE", 0),
|
|
.Signature = pRow.ItemEx("SIGNATURE", "")
|
|
}
|
|
End Function
|
|
|
|
Public Function TestReceiverExists(pReceiver As EnvelopeReceiver) As Boolean
|
|
Try
|
|
Dim oGuid = Database.GetScalarValue($"SELECT COALESCE(GUID, 0) FROM TBSIG_RECEIVER WHERE EMAIL_ADDRESS = '{pReceiver.Email}'")
|
|
pReceiver.Id = oGuid
|
|
Return oGuid > 0
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
Public Function Insert(pReceiver As EnvelopeReceiver, pTransaction As SqlTransaction) As Boolean
|
|
Try
|
|
Dim oSql As String = "INSERT INTO [dbo].[TBSIG_RECEIVER]
|
|
([EMAIL_ADDRESS]
|
|
,[SIGNATURE])
|
|
VALUES
|
|
(@EMAIL
|
|
,@SIGNATURE)"
|
|
|
|
Dim oCommand = New SqlCommand(oSql)
|
|
oCommand.Parameters.Add("EMAIL", SqlDbType.NVarChar).Value = pReceiver.Email
|
|
oCommand.Parameters.Add("SIGNATURE", SqlDbType.NVarChar).Value = pReceiver.GetSignature()
|
|
|
|
Dim oResult = Database.ExecuteNonQuery(oCommand)
|
|
If oResult = True Then
|
|
pReceiver.Id = GetReceiverIdByEmail(pReceiver.Email, pTransaction)
|
|
Else
|
|
Return False
|
|
End If
|
|
|
|
Return True
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
Public Function Update(pReceiver As EnvelopeReceiver, pTransaction As SqlTransaction) As Boolean
|
|
Try
|
|
Dim oSql As String = "UPDATE [dbo].[TBSIG_USER_RECEIVER]
|
|
SET [NAME] = @NAME
|
|
,[COMPANY_NAME] = @COMPANY
|
|
,[JOB_TITLE] = @JOB
|
|
WHERE RECEIVER_ID = @RECEIVER_ID"
|
|
|
|
Dim oCommand = New SqlCommand(oSql)
|
|
oCommand.Parameters.Add("NAME", SqlDbType.NVarChar).Value = pReceiver.Name
|
|
oCommand.Parameters.Add("COMPANY", SqlDbType.NVarChar).Value = pReceiver.Company
|
|
oCommand.Parameters.Add("JOB", SqlDbType.NVarChar).Value = pReceiver.JobTitle
|
|
oCommand.Parameters.Add("RECEIVER_ID", SqlDbType.Int).Value = pReceiver.Id
|
|
oCommand.Parameters.Add("USER_ID", SqlDbType.Int).Value = pReceiver.Id
|
|
|
|
Return Database.ExecuteNonQuery(oCommand, pTransaction)
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
Public Function Unassign(pEnvelope As Envelope, pTransaction As SqlTransaction) As Boolean
|
|
Try
|
|
Return Database.ExecuteNonQuery($"DELETE FROM [dbo].[TBSIG_ENVELOPE_RECEIVER] WHERE [ENVELOPE_ID] = {pEnvelope.Id}", pTransaction)
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
Public Function Assign(pEnvelope As Envelope, pReceiver As EnvelopeReceiver, pTransaction As SqlTransaction) As Boolean
|
|
Dim oSql = "INSERT INTO [dbo].[TBSIG_ENVELOPE_RECEIVER]
|
|
([ENVELOPE_ID]
|
|
,[RECEIVER_ID]
|
|
,[PRIVATE_MESSAGE]
|
|
,[ACCESS_CODE]
|
|
,[NAME]
|
|
,[JOB_TITLE]
|
|
,[COMPANY_NAME]
|
|
,[SEQUENCE])
|
|
VALUES
|
|
(@ENVELOPE_ID
|
|
,@RECEIVER_ID
|
|
,@MESSAGE
|
|
,@ACCESS_CODE
|
|
,@NAME
|
|
,@JOB
|
|
,@COMPANY
|
|
,@SEQUENCE)"
|
|
|
|
Dim oCommand As New SqlCommand(oSql)
|
|
oCommand.Parameters.Add("ENVELOPE_ID", SqlDbType.NVarChar).Value = pEnvelope.Id
|
|
oCommand.Parameters.Add("RECEIVER_ID", SqlDbType.NVarChar).Value = pReceiver.Id
|
|
oCommand.Parameters.Add("MESSAGE", SqlDbType.NVarChar).Value = pReceiver.PrivateMessage
|
|
oCommand.Parameters.Add("ACCESS_CODE", SqlDbType.NVarChar).Value = pReceiver.AccessCode
|
|
oCommand.Parameters.Add("NAME", SqlDbType.NVarChar).Value = pReceiver.Name
|
|
oCommand.Parameters.Add("JOB", SqlDbType.NVarChar).Value = pReceiver.JobTitle
|
|
oCommand.Parameters.Add("COMPANY", SqlDbType.NVarChar).Value = pReceiver.Company
|
|
oCommand.Parameters.Add("SEQUENCE", SqlDbType.NVarChar).Value = pReceiver.Sequence
|
|
|
|
Return Database.ExecuteNonQuery(oCommand, pTransaction)
|
|
End Function
|
|
|
|
Public Function ListEnvelopeReceivers(pEnvelopeId As Integer) As IEnumerable(Of EnvelopeReceiver)
|
|
Try
|
|
Dim oSql = $"SELECT * FROM [dbo].[VWSIG_ENVELOPE_RECEIVERS] WHERE ENVELOPE_ID = {pEnvelopeId}"
|
|
Dim oTable = Database.GetDatatable(oSql)
|
|
|
|
Return oTable?.Rows.Cast(Of DataRow).
|
|
Select(AddressOf ToReceiver).
|
|
ToList()
|
|
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Return Nothing
|
|
End Try
|
|
End Function
|
|
|
|
Public Function ListReceivers(pExistingReceivers As IEnumerable(Of EnvelopeReceiver)) As IEnumerable(Of EnvelopeReceiver)
|
|
Try
|
|
If pExistingReceivers.Count = 0 Then
|
|
Return New List(Of EnvelopeReceiver)
|
|
End If
|
|
|
|
Dim oAddresses = pExistingReceivers.Select(Function(r) $"'{r.Email}'").JoinToString(",")
|
|
|
|
Dim oSql = $"SELECT * FROM [dbo].[TBSIG_RECEIVER] WHERE EMAIL_ADDRESS IN ({oAddresses})"
|
|
Dim oTable = Database.GetDatatable(oSql)
|
|
|
|
Return oTable?.Rows.Cast(Of DataRow).
|
|
Select(AddressOf ToReceiver).
|
|
ToList()
|
|
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Return Nothing
|
|
End Try
|
|
End Function
|
|
|
|
Public Function Delete(pReceiverId As Integer, pEnvelopeId As Integer, pTransaction As SqlTransaction) As Boolean
|
|
Try
|
|
Dim oSql = $"DELETE FROM TBSIG_ENVELOPE_RECEIVER WHERE RECEIVER_ID = {pReceiverId} AND ENVELOPE_ID = {pEnvelopeId}"
|
|
Return Database.ExecuteNonQuery(oSql, pTransaction)
|
|
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Return False
|
|
|
|
End Try
|
|
End Function
|
|
|
|
Public Function GetReceiverIdBySignature(pSignature As String) As Integer
|
|
Try
|
|
Return Database.GetScalarValue($"SELECT GUID FROM TBSIG_RECEIVER WHERE SIGNATURE = '{pSignature}'")
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Return Nothing
|
|
End Try
|
|
End Function
|
|
|
|
Private Function GetReceiverIdByEmail(pEmailAddress As String, pTransaction As SqlTransaction) As Integer
|
|
Try
|
|
Return Database.GetScalarValue($"SELECT GUID FROM TBSIG_RECEIVER WHERE EMAIL_ADDRESS = '{pEmailAddress}'", pTransaction)
|
|
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
Return Nothing
|
|
End Try
|
|
End Function
|
|
|
|
|
|
End Class
|