Refactor EnvelopeReceiver and History controllers

- Added using directive for EnvelopeGenerator.Domain.Constants.
- Updated ignore_statuses type in EnvelopeReceiverController.
- Improved resource management with using statements for SqlConnection and SqlCommand.
- Changed from Array.Empty<Signature>() to Enumerable.Empty<Signature>() for better performance.
- Simplified GetEnvelopeStatus method in HistoryController by using Status directly.
This commit is contained in:
tekh 2025-09-01 14:21:53 +02:00
parent bbe93dad45
commit 9434f83b3e
2 changed files with 16 additions and 18 deletions

View File

@ -17,6 +17,7 @@ using Microsoft.Extensions.Options;
using System.Data; using System.Data;
using System.Reflection.Metadata; using System.Reflection.Metadata;
using EnvelopeGenerator.Domain; using EnvelopeGenerator.Domain;
using EnvelopeGenerator.Domain.Constants;
namespace EnvelopeGenerator.GeneratorAPI.Controllers; namespace EnvelopeGenerator.GeneratorAPI.Controllers;
@ -104,7 +105,7 @@ public class EnvelopeReceiverController : ControllerBase
max_status: envelopeReceiver.Envelope.Status?.Max, max_status: envelopeReceiver.Envelope.Status?.Max,
envelopeQuery: envelopeReceiver.Envelope, envelopeQuery: envelopeReceiver.Envelope,
receiverQuery: envelopeReceiver.Receiver, receiverQuery: envelopeReceiver.Receiver,
ignore_statuses: envelopeReceiver.Envelope.Status?.Ignore ?? Array.Empty<EnvelopeStatusQuery>()) ignore_statuses: envelopeReceiver.Envelope.Status?.Ignore ?? Array.Empty<EnvelopeStatus>())
.ThenAsync( .ThenAsync(
Success: Ok, Success: Ok,
Fail: IActionResult (msg, ntc) => Fail: IActionResult (msg, ntc) =>
@ -233,15 +234,14 @@ public class EnvelopeReceiverController : ControllerBase
SELECT @OUT_SUCCESS as [@OUT_SUCCESS];"; SELECT @OUT_SUCCESS as [@OUT_SUCCESS];";
foreach (var rcv in res.SentReceiver) 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 ?? Enumerable.Empty<Signature>())
{
using (SqlConnection conn = new(_cnnStr))
{ {
using SqlConnection conn = new(_cnnStr);
conn.Open(); conn.Open();
var formattedSQL = string.Format(sql, document.Id.ToSqlParam(), rcv.Id.ToSqlParam(), sign.X.ToSqlParam(), sign.Y.ToSqlParam(), sign.Page.ToSqlParam()); var formattedSQL = string.Format(sql, document.Id.ToSqlParam(), rcv.Id.ToSqlParam(), sign.X.ToSqlParam(), sign.Y.ToSqlParam(), sign.Page.ToSqlParam());
using SqlCommand cmd = new SqlCommand(formattedSQL, conn); using SqlCommand cmd = new(formattedSQL, conn);
cmd.CommandType = CommandType.Text; cmd.CommandType = CommandType.Text;
using SqlDataReader reader = cmd.ExecuteReader(); using SqlDataReader reader = cmd.ExecuteReader();
@ -250,7 +250,6 @@ public class EnvelopeReceiverController : ControllerBase
bool outSuccess = reader.GetBoolean(0); bool outSuccess = reader.GetBoolean(0);
} }
} }
}
#endregion #endregion
#region Create history #region Create history

View File

@ -3,9 +3,8 @@ using MediatR;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Caching.Memory;
using EnvelopeGenerator.Domain;
using EnvelopeGenerator.Application.Histories.Queries; using EnvelopeGenerator.Application.Histories.Queries;
using EnvelopeGenerator.Application.Extensions; using EnvelopeGenerator.Domain.Constants;
namespace EnvelopeGenerator.GeneratorAPI.Controllers; namespace EnvelopeGenerator.GeneratorAPI.Controllers;
@ -94,7 +93,7 @@ public class HistoryController : ControllerBase
public IActionResult GetEnvelopeStatus([FromQuery] EnvelopeStatus? status = null) public IActionResult GetEnvelopeStatus([FromQuery] EnvelopeStatus? status = null)
{ {
return status is null return status is null
? Ok(_memoryCache.GetEnumAsDictionary<EnvelopeStatus>("gen.api", Constants.Status.NonHist, Constants.Status.RelatedToFormApp)) ? Ok(_memoryCache.GetEnumAsDictionary<EnvelopeStatus>("gen.api", Status.NonHist, Status.RelatedToFormApp))
: Ok(status.ToString()); : Ok(status.ToString());
} }