Updated CreateParmas method to accept only base64 string. Converted base64 to byte array and added it as ByteData. Adjusted SQL command and DocumentExecutor to reflect these changes.
30 lines
1.3 KiB
C#
30 lines
1.3 KiB
C#
using Dapper;
|
|
using EnvelopeGenerator.Application.Contracts.SQLExecutor;
|
|
using EnvelopeGenerator.Application.SQL;
|
|
using EnvelopeGenerator.Domain.Entities;
|
|
using Microsoft.Data.SqlClient;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Options;
|
|
|
|
namespace EnvelopeGenerator.Infrastructure.Executor;
|
|
|
|
public class DocumentExecutor : SQLExecutor, IDocumentExecutor
|
|
{
|
|
public DocumentExecutor(IServiceProvider provider, IOptions<SQLExecutorParams> sqlExecutorParamsOptions) : base(provider, sqlExecutorParamsOptions)
|
|
{
|
|
}
|
|
|
|
public async Task<EnvelopeDocument> CreateDocumentAsync(string base64, string envelope_uuid, CancellationToken cancellation = default)
|
|
{
|
|
using var connection = new SqlConnection(Params.ConnectionString);
|
|
var sql = Provider.GetRequiredService<DocumentCreateReadSQL>();
|
|
var formattedSql = string.Format(sql.Raw, envelope_uuid.ToSqlParam());
|
|
var param = DocumentCreateReadSQL.CreateParmas(base64);
|
|
await connection.OpenAsync(cancellation);
|
|
var documents = await connection.QueryAsync<EnvelopeDocument>(formattedSql, param);
|
|
return documents.FirstOrDefault()
|
|
?? throw new InvalidOperationException($"Document creation failed. Parameters:" +
|
|
$"base64={base64}, envelope_uuid='{envelope_uuid}'.");
|
|
}
|
|
}
|