Compare commits
14 Commits
49ccd9fef2
...
519df50404
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
519df50404 | ||
|
|
9a71d2b805 | ||
|
|
5f8e8deb5b | ||
|
|
645153113c | ||
|
|
2ba7f41a21 | ||
|
|
c8f21be905 | ||
|
|
1875acb7b5 | ||
|
|
6bdf0d5220 | ||
|
|
ad855b77cd | ||
|
|
a781440252 | ||
|
|
5fc689ee4d | ||
|
|
38d05850e3 | ||
|
|
06d25b6f5b | ||
|
|
55b01cf396 |
@@ -60,8 +60,8 @@ public class CreateEnvelopeReceiverCommandHandler : IRequestHandler<CreateEnvelo
|
|||||||
}
|
}
|
||||||
|
|
||||||
var res = _mapper.Map<CreateEnvelopeReceiverResponse>(envelope);
|
var res = _mapper.Map<CreateEnvelopeReceiverResponse>(envelope);
|
||||||
res.UnsentRecipients = unsentRecipients;
|
res.UnsentReceivers = unsentRecipients;
|
||||||
res.SentRecipients = _mapper.Map<IEnumerable<ReceiverReadDto>>(sentRecipients);
|
res.SentReceiver = _mapper.Map<IEnumerable<ReceiverReadDto>>(sentRecipients);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,14 +36,12 @@ public record ReceiverGetOrCreateCommand([Required] IEnumerable<Signature> Signa
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// DTO zum Erstellen eines Dokuments.
|
/// DTO zum Erstellen eines Dokuments.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="DataAsByte">
|
public record DocumentCreateCommand()
|
||||||
/// Die Dokumentdaten im Byte-Array-Format. Wird verwendet, wenn das Dokument als Roh-Binärdaten bereitgestellt wird.
|
|
||||||
/// </param>
|
|
||||||
public record DocumentCreateCommand(byte[]? DataAsByte = null)
|
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Die Dokumentdaten im Base64-String-Format. Wird verwendet, wenn das Dokument als Base64-codierter String bereitgestellt wird.
|
/// Die Dokumentdaten im Base64-String-Format. Wird verwendet, wenn das Dokument als Base64-codierter String bereitgestellt wird.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? DataAsBase64 { get; set; }
|
[Required]
|
||||||
|
public required string DataAsBase64 { get; init; }
|
||||||
};
|
};
|
||||||
#endregion
|
#endregion
|
||||||
@@ -30,10 +30,10 @@ public record CreateEnvelopeReceiverResponse : CreateEnvelopeResponse
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public IEnumerable<ReceiverReadDto> SentRecipients { get; set; } = new List<ReceiverReadDto>();
|
public IEnumerable<ReceiverReadDto> SentReceiver { get; set; } = new List<ReceiverReadDto>();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public IEnumerable<ReceiverGetOrCreateCommand> UnsentRecipients { get; set; } = new List<ReceiverGetOrCreateCommand>();
|
public IEnumerable<ReceiverGetOrCreateCommand> UnsentReceivers { get; set; } = new List<ReceiverGetOrCreateCommand>();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,19 +10,17 @@ namespace EnvelopeGenerator.Application.SQL;
|
|||||||
public class DocumentCreateReadSQL : ISQL<EnvelopeDocument>
|
public class DocumentCreateReadSQL : ISQL<EnvelopeDocument>
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
/// Base64, OUT_UID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Raw => @"
|
public string Raw => @"
|
||||||
USE [DD_ECM]
|
|
||||||
|
|
||||||
DECLARE @BYTE_DATA1 as VARBINARY(MAX)
|
DECLARE @BYTE_DATA1 as VARBINARY(MAX)
|
||||||
SET @BYTE_DATA1 = CONVERT(VARBINARY(MAX),'@Base64')
|
SET @BYTE_DATA1 = CONVERT(VARBINARY(MAX),{0})
|
||||||
DECLARE @OUT_DOCID int
|
DECLARE @OUT_DOCID int
|
||||||
|
|
||||||
EXEC [dbo].[PRSIG_API_ADD_DOC]
|
EXEC [dbo].[PRSIG_API_ADD_DOC]
|
||||||
@ENV_UID = @OUT_UID,
|
{1},
|
||||||
@BYTE_DATA = @BYTE_DATA1,
|
@BYTE_DATA1,
|
||||||
@OUT_DOCID = @OUT_DOCID OUTPUT
|
@OUT_DOCID OUTPUT
|
||||||
|
|
||||||
SELECT TOP(1) *
|
SELECT TOP(1) *
|
||||||
FROM [dbo].[TBSIG_ENVELOPE_DOCUMENT]
|
FROM [dbo].[TBSIG_ENVELOPE_DOCUMENT]
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using Dapper;
|
using Dapper;
|
||||||
using EnvelopeGenerator.Application.Contracts.SQLExecutor;
|
using EnvelopeGenerator.Application.Contracts.SQLExecutor;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
|
using System.Data;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.SQL;
|
namespace EnvelopeGenerator.Application.SQL;
|
||||||
|
|
||||||
@@ -10,18 +11,17 @@ namespace EnvelopeGenerator.Application.SQL;
|
|||||||
public class EnvelopeCreateReadSQL : ISQL<Envelope>
|
public class EnvelopeCreateReadSQL : ISQL<Envelope>
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
/// USER_ID, TITLE, TFAEnabled, MESSAGE
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Raw => @"
|
public string Raw => @"
|
||||||
USE [DD_ECM];
|
|
||||||
DECLARE @OUT_UID varchar(36);
|
DECLARE @OUT_UID varchar(36);
|
||||||
|
|
||||||
EXEC [dbo].[PRSIG_API_CREATE_ENVELOPE]
|
EXEC [dbo].[PRSIG_API_CREATE_ENVELOPE]
|
||||||
@USER_ID = @UserId,
|
{0},
|
||||||
@TITLE = @Title,
|
{1},
|
||||||
@TFAEnabled = @TfaEnabled,
|
{2},
|
||||||
@MESSAGE = @Message,
|
{3},
|
||||||
@OUT_UID = @OUT_UID OUTPUT;
|
@OUT_UID OUTPUT;
|
||||||
|
|
||||||
SELECT TOP(1) *
|
SELECT TOP(1) *
|
||||||
FROM [dbo].[TBSIG_ENVELOPE]
|
FROM [dbo].[TBSIG_ENVELOPE]
|
||||||
@@ -36,13 +36,14 @@ public class EnvelopeCreateReadSQL : ISQL<Envelope>
|
|||||||
/// <param name="message"></param>
|
/// <param name="message"></param>
|
||||||
/// <param name="tfaEnabled"></param>
|
/// <param name="tfaEnabled"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static DynamicParameters CreateParmas(int userId, string title = "", string message = "", bool tfaEnabled = false)
|
public static DynamicParameters CreateParams(int userId, string title = "", string message = "", bool tfaEnabled = false)
|
||||||
{
|
{
|
||||||
var parameters = new DynamicParameters();
|
var parameters = new DynamicParameters();
|
||||||
parameters.Add("@UserId", userId);
|
parameters.Add("@UserId", userId);
|
||||||
parameters.Add("@Title", title);
|
parameters.Add("@Title", title);
|
||||||
parameters.Add("@TfaEnabled", tfaEnabled ? 1 : 0);
|
parameters.Add("@TfaEnabled", tfaEnabled ? 1 : 0);
|
||||||
parameters.Add("@Message", message);
|
parameters.Add("@Message", message);
|
||||||
|
parameters.Add("@OutUid", dbType: DbType.String, size: 36, direction: ParameterDirection.Output);
|
||||||
return parameters;
|
return parameters;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,21 +10,20 @@ namespace EnvelopeGenerator.Application.SQL;
|
|||||||
public class EnvelopeReceiverAddReadSQL : ISQL<Envelope>
|
public class EnvelopeReceiverAddReadSQL : ISQL<Envelope>
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
/// ENV_UID, EMAIL_ADRESS, SALUTATION, PHONE,
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Raw => @"
|
public string Raw => @"
|
||||||
USE [DD_ECM]
|
|
||||||
DECLARE @OUT_RECEIVER_ID int
|
DECLARE @OUT_RECEIVER_ID int
|
||||||
|
|
||||||
EXEC [dbo].[PRSIG_API_CREATE_RECEIVER]
|
EXEC [dbo].[PRSIG_API_CREATE_RECEIVER]
|
||||||
@ENV_UID = @ENV_UID,
|
{0},
|
||||||
@EMAIL_ADRESS = @EMAIL_ADRESS,
|
{1},
|
||||||
@SALUTATION = @SALUTATION,
|
{2},
|
||||||
@PHONE = @PHONE,
|
{3},
|
||||||
@OUT_RECEIVER_ID = @OUT_RECEIVER_ID OUTPUT
|
@OUT_RECEIVER_ID OUTPUT
|
||||||
|
|
||||||
SELECT TOP(1) *
|
SELECT TOP(1) [ENVELOPE_ID] As EnvelopeId, [RECEIVER_ID] As ReceiverId
|
||||||
FROM TBSIG_ENVELOPE_RECEIVER
|
FROM [dbo].[TBSIG_ENVELOPE_RECEIVER]
|
||||||
WHERE [GUID] = @OUT_RECEIVER_ID;
|
WHERE [GUID] = @OUT_RECEIVER_ID;
|
||||||
";
|
";
|
||||||
|
|
||||||
|
|||||||
30
EnvelopeGenerator.Application/SQL/ParamsExtensions.cs
Normal file
30
EnvelopeGenerator.Application/SQL/ParamsExtensions.cs
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
using System.Globalization;
|
||||||
|
|
||||||
|
namespace EnvelopeGenerator.Application.SQL;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Extension method for converting objects to SQL parameter strings.
|
||||||
|
/// </summary>
|
||||||
|
public static class ParamsExtensions
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Converts a .NET object to its corresponding SQL-safe parameter string.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="obj">The object to convert.</param>
|
||||||
|
/// <returns>A string representing the SQL parameter.</returns>
|
||||||
|
public static string ToSqlParam(this object? obj)
|
||||||
|
{
|
||||||
|
if (obj is null)
|
||||||
|
return "NULL";
|
||||||
|
else if (obj is string strVal)
|
||||||
|
return $"'{strVal}'";
|
||||||
|
else if (obj is bool boolVal)
|
||||||
|
return boolVal ? "1" : "0";
|
||||||
|
else if (obj is double doubleVal)
|
||||||
|
return $"'{doubleVal.ToString(CultureInfo.InvariantCulture)}'";
|
||||||
|
else if (obj is int intVal)
|
||||||
|
return intVal.ToString();
|
||||||
|
else
|
||||||
|
throw new NotSupportedException($"Type '{obj.GetType().FullName}' is not supported for SQL parameter conversion.");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,6 +6,7 @@ using EnvelopeGenerator.Application.DTOs.Receiver;
|
|||||||
using EnvelopeGenerator.Application.EnvelopeReceivers.Commands.Create;
|
using EnvelopeGenerator.Application.EnvelopeReceivers.Commands.Create;
|
||||||
using EnvelopeGenerator.Application.EnvelopeReceivers.Queries.Read;
|
using EnvelopeGenerator.Application.EnvelopeReceivers.Queries.Read;
|
||||||
using EnvelopeGenerator.Application.Envelopes.Queries.ReceiverName;
|
using EnvelopeGenerator.Application.Envelopes.Queries.ReceiverName;
|
||||||
|
using EnvelopeGenerator.Application.SQL;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using EnvelopeGenerator.GeneratorAPI.Models;
|
using EnvelopeGenerator.GeneratorAPI.Models;
|
||||||
using MediatR;
|
using MediatR;
|
||||||
@@ -202,35 +203,25 @@ public class EnvelopeReceiverController : ControllerBase
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Add receivers
|
#region Add receivers
|
||||||
List<EnvelopeReceiver> sentRecipients = new();
|
List<EnvelopeReceiver> sentReceivers = new();
|
||||||
List<ReceiverGetOrCreateCommand> unsentRecipients = new();
|
List<ReceiverGetOrCreateCommand> unsentReceivers = new();
|
||||||
|
|
||||||
foreach (var receiver in request.Receivers)
|
foreach (var receiver in request.Receivers)
|
||||||
{
|
{
|
||||||
var envelopeReceiver = await _erExecutor.AddEnvelopeReceiverAsync(envelope.Uuid, receiver.EmailAddress, receiver.Salution, receiver.PhoneNumber, cancel);
|
var envelopeReceiver = await _erExecutor.AddEnvelopeReceiverAsync(envelope.Uuid, receiver.EmailAddress, receiver.Salution, receiver.PhoneNumber, cancel);
|
||||||
|
|
||||||
if (envelopeReceiver is null)
|
if (envelopeReceiver is null)
|
||||||
unsentRecipients.Add(receiver);
|
unsentReceivers.Add(receiver);
|
||||||
else
|
else
|
||||||
sentRecipients.Add(envelopeReceiver);
|
sentReceivers.Add(envelopeReceiver);
|
||||||
}
|
}
|
||||||
|
|
||||||
var res = _mapper.Map<CreateEnvelopeReceiverResponse>(envelope);
|
var res = _mapper.Map<CreateEnvelopeReceiverResponse>(envelope);
|
||||||
res.UnsentRecipients = unsentRecipients;
|
res.UnsentReceivers = unsentReceivers;
|
||||||
res.SentRecipients = _mapper.Map<IEnumerable<ReceiverReadDto>>(sentRecipients);
|
res.SentReceiver = _mapper.Map<List<ReceiverReadDto>>(sentReceivers.Select(er => er.Receiver));
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Add document
|
#region Add document
|
||||||
if(request.Document.DataAsBase64 is null)
|
|
||||||
if (request.Document.DataAsByte is null)
|
|
||||||
return BadRequest("No document data is found");
|
|
||||||
else
|
|
||||||
request.Document.DataAsBase64 = Convert.ToBase64String(request.Document.DataAsByte);
|
|
||||||
else if (request.Document.DataAsByte is not null)
|
|
||||||
return BadRequest("Document data cannot be assigned as both byte data and base64 string.");
|
|
||||||
else if (!IsBase64String(request.Document.DataAsBase64))
|
|
||||||
return BadRequest("Document data is not a base64 string");
|
|
||||||
|
|
||||||
var document = await _documentExecutor.CreateDocumentAsync(request.Document.DataAsBase64, envelope.Uuid, cancel);
|
var document = await _documentExecutor.CreateDocumentAsync(request.Document.DataAsBase64, envelope.Uuid, cancel);
|
||||||
|
|
||||||
if(document is null)
|
if(document is null)
|
||||||
@@ -238,36 +229,31 @@ public class EnvelopeReceiverController : ControllerBase
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Add document element
|
#region Add document element
|
||||||
|
// @DOC_ID, @RECEIVER_ID, @POSITION_X, @POSITION_Y, @PAGE
|
||||||
string sql = @"
|
string sql = @"
|
||||||
USE [DD_ECM]
|
|
||||||
|
|
||||||
DECLARE @OUT_SUCCESS bit;
|
DECLARE @OUT_SUCCESS bit;
|
||||||
|
|
||||||
EXEC [dbo].[PRSIG_API_ADD_DOC_RECEIVER_ELEM]
|
EXEC [dbo].[PRSIG_API_ADD_DOC_RECEIVER_ELEM]
|
||||||
@DOC_ID = @DOC_ID,
|
{0},
|
||||||
@RECEIVER_ID = @RECEIVER_ID,
|
{1},
|
||||||
@POSITION_X = @POSITION_X,
|
{2},
|
||||||
@POSITION_Y = @POSITION_Y,
|
{3},
|
||||||
@PAGE = @PAGE,
|
{4},
|
||||||
@OUT_SUCCESS = @OUT_SUCCESS OUTPUT;
|
@OUT_SUCCESS OUTPUT;
|
||||||
|
|
||||||
SELECT @OUT_SUCCESS as [@OUT_SUCCESS];";
|
SELECT @OUT_SUCCESS as [@OUT_SUCCESS];";
|
||||||
|
|
||||||
foreach(var rcv in res.SentRecipients)
|
foreach(var rcv in res.SentReceiver)
|
||||||
foreach(var sign in request.Receivers.Where(r => r.EmailAddress == rcv.EmailAddress).FirstOrDefault()?.Signatures ?? Array.Empty<Signature>())
|
foreach(var sign in request.Receivers.Where(r => r.EmailAddress == rcv.EmailAddress).FirstOrDefault()?.Signatures ?? Array.Empty<Signature>())
|
||||||
{
|
{
|
||||||
using (SqlConnection conn = new(_cnnStr))
|
using (SqlConnection conn = new(_cnnStr))
|
||||||
{
|
{
|
||||||
conn.Open();
|
conn.Open();
|
||||||
|
|
||||||
using SqlCommand cmd = new SqlCommand(sql, conn);
|
var formattedSQL = string.Format(sql, document.Id.ToSqlParam(), rcv.Id.ToSqlParam(), sign.X.ToSqlParam(), sign.Y.ToSqlParam(), sign.Page.ToSqlParam());
|
||||||
cmd.CommandType = CommandType.Text;
|
|
||||||
|
|
||||||
cmd.Parameters.AddWithValue("@DOC_ID", document.Id);
|
using SqlCommand cmd = new SqlCommand(formattedSQL, conn);
|
||||||
cmd.Parameters.AddWithValue("@RECEIVER_ID", rcv.Id);
|
cmd.CommandType = CommandType.Text;
|
||||||
cmd.Parameters.AddWithValue("@POSITION_X", sign.X.ToString());
|
|
||||||
cmd.Parameters.AddWithValue("@POSITION_Y", sign.Y.ToString());
|
|
||||||
cmd.Parameters.AddWithValue("@PAGE", sign.Page.ToString());
|
|
||||||
|
|
||||||
using SqlDataReader reader = cmd.ExecuteReader();
|
using SqlDataReader reader = cmd.ExecuteReader();
|
||||||
if (reader.Read())
|
if (reader.Read())
|
||||||
@@ -279,33 +265,28 @@ public class EnvelopeReceiverController : ControllerBase
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Create history
|
#region Create history
|
||||||
string connectionString = "Server=YOUR_SERVER;Database=YOUR_DATABASE;Trusted_Connection=True;";
|
// ENV_UID, STATUS_ID, USER_ID,
|
||||||
|
|
||||||
string sql_hist = @"
|
string sql_hist = @"
|
||||||
USE [DD_ECM]
|
USE [DD_ECM]
|
||||||
|
|
||||||
DECLARE @OUT_SUCCESS bit;
|
DECLARE @OUT_SUCCESS bit;
|
||||||
|
|
||||||
EXEC [dbo].[PRSIG_API_ADD_HISTORY_STATE]
|
EXEC [dbo].[PRSIG_API_ADD_HISTORY_STATE]
|
||||||
@ENV_UID = @ENV_UID,
|
{0},
|
||||||
@STATUS_ID = @STATUS_ID,
|
{1},
|
||||||
@USER_ID = @USER_ID,
|
{2},
|
||||||
@OUT_SUCCESS = @OUT_SUCCESS OUTPUT;
|
@OUT_SUCCESS OUTPUT;
|
||||||
|
|
||||||
SELECT @OUT_SUCCESS as [@OUT_SUCCESS];";
|
SELECT @OUT_SUCCESS as [@OUT_SUCCESS];";
|
||||||
|
|
||||||
using (SqlConnection conn = new(connectionString))
|
using (SqlConnection conn = new(_cnnStr))
|
||||||
{
|
{
|
||||||
conn.Open();
|
conn.Open();
|
||||||
|
var formattedSQL_hist = string.Format(sql_hist, envelope.Uuid.ToSqlParam(), 1003.ToSqlParam(), userId.ToSqlParam());
|
||||||
using (SqlCommand cmd = new SqlCommand(sql_hist, conn))
|
using (SqlCommand cmd = new SqlCommand(formattedSQL_hist, conn))
|
||||||
{
|
{
|
||||||
cmd.CommandType = CommandType.Text;
|
cmd.CommandType = CommandType.Text;
|
||||||
|
|
||||||
cmd.Parameters.AddWithValue("@ENV_UID", envelope.Uuid);
|
|
||||||
cmd.Parameters.AddWithValue("@STATUS_ID", 1003);
|
|
||||||
cmd.Parameters.AddWithValue("@USER_ID", userId);
|
|
||||||
|
|
||||||
using (SqlDataReader reader = cmd.ExecuteReader())
|
using (SqlDataReader reader = cmd.ExecuteReader())
|
||||||
{
|
{
|
||||||
if (reader.Read())
|
if (reader.Read())
|
||||||
|
|||||||
@@ -18,9 +18,9 @@ public class DocumentExecutor : SQLExecutor, IDocumentExecutor
|
|||||||
{
|
{
|
||||||
using var connection = new SqlConnection(Params.ConnectionString);
|
using var connection = new SqlConnection(Params.ConnectionString);
|
||||||
var sql = Provider.GetRequiredService<DocumentCreateReadSQL>();
|
var sql = Provider.GetRequiredService<DocumentCreateReadSQL>();
|
||||||
|
var formattedSql = string.Format(sql.Raw, base64.ToSqlParam(), envelope_uuid.ToSqlParam());
|
||||||
await connection.OpenAsync(cancellation);
|
await connection.OpenAsync(cancellation);
|
||||||
var parameters = DocumentCreateReadSQL.CreateParmas(base64, envelope_uuid);
|
var documents = await connection.QueryAsync<EnvelopeDocument>(formattedSql);
|
||||||
var documents = await connection.QueryAsync<EnvelopeDocument>(sql.Raw, parameters);
|
|
||||||
return documents.FirstOrDefault()
|
return documents.FirstOrDefault()
|
||||||
?? throw new InvalidOperationException($"Document creation failed. Parameters:" +
|
?? throw new InvalidOperationException($"Document creation failed. Parameters:" +
|
||||||
$"base64={base64}, envelope_uuid='{envelope_uuid}'.");
|
$"base64={base64}, envelope_uuid='{envelope_uuid}'.");
|
||||||
|
|||||||
@@ -23,9 +23,9 @@ public class EnvelopeExecutor : SQLExecutor, IEnvelopeExecutor
|
|||||||
{
|
{
|
||||||
using var connection = new SqlConnection(Params.ConnectionString);
|
using var connection = new SqlConnection(Params.ConnectionString);
|
||||||
var sql = Provider.GetRequiredService<EnvelopeCreateReadSQL>();
|
var sql = Provider.GetRequiredService<EnvelopeCreateReadSQL>();
|
||||||
|
var formattedSql = string.Format(sql.Raw, userId.ToSqlParam(), title.ToSqlParam(), tfaEnabled.ToSqlParam(), message.ToSqlParam());
|
||||||
await connection.OpenAsync(cancellation);
|
await connection.OpenAsync(cancellation);
|
||||||
var parameters = EnvelopeCreateReadSQL.CreateParmas(userId, title, message, tfaEnabled);
|
var envelopes = await connection.QueryAsync<Envelope>(formattedSql);
|
||||||
var envelopes = await connection.QueryAsync<Envelope>(sql.Raw, parameters);
|
|
||||||
var envelope = envelopes.FirstOrDefault()
|
var envelope = envelopes.FirstOrDefault()
|
||||||
?? throw new InvalidOperationException($"Envelope creation failed. Parameters:" +
|
?? throw new InvalidOperationException($"Envelope creation failed. Parameters:" +
|
||||||
$"userId={userId}, title='{title}', message='{message}', tfaEnabled={tfaEnabled}."); ;
|
$"userId={userId}, title='{title}', message='{message}', tfaEnabled={tfaEnabled}."); ;
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ using EnvelopeGenerator.Application.SQL;
|
|||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using Microsoft.Data.SqlClient;
|
using Microsoft.Data.SqlClient;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Infrastructure.Executor;
|
namespace EnvelopeGenerator.Infrastructure.Executor;
|
||||||
@@ -23,8 +22,9 @@ public class EnvelopeReceiverExecutor: SQLExecutor, IEnvelopeReceiverExecutor
|
|||||||
{
|
{
|
||||||
using var connection = new SqlConnection(Params.ConnectionString);
|
using var connection = new SqlConnection(Params.ConnectionString);
|
||||||
var sql = Provider.GetRequiredService<EnvelopeReceiverAddReadSQL>();
|
var sql = Provider.GetRequiredService<EnvelopeReceiverAddReadSQL>();
|
||||||
|
var formattedSql = string.Format(sql.Raw, envelope_uuid.ToSqlParam(), emailAddress.ToSqlParam(), salutation.ToSqlParam(), phone.ToSqlParam());
|
||||||
await connection.OpenAsync(cancellation);
|
await connection.OpenAsync(cancellation);
|
||||||
var envelopeReceivers = await connection.QueryAsync<EnvelopeReceiver>(sql.Raw, EnvelopeReceiverAddReadSQL.CreateParameters(envelope_uuid, emailAddress, salutation, phone));
|
var envelopeReceivers = await connection.QueryAsync(formattedSql);
|
||||||
var er = envelopeReceivers.FirstOrDefault();
|
var er = envelopeReceivers.FirstOrDefault();
|
||||||
|
|
||||||
if (er is null)
|
if (er is null)
|
||||||
|
|||||||
Reference in New Issue
Block a user