refactor(Pdf\Behaviors): Handle the history recording process in another behavior named CreateHistoryBehavior

This commit is contained in:
tekh 2025-11-12 11:00:24 +01:00
parent 380b141738
commit d88ed324be
3 changed files with 51 additions and 13 deletions

View File

@ -89,6 +89,7 @@ public static class DependencyInjection
cfg.RegisterServicesFromAssembly(Assembly.GetExecutingAssembly()); cfg.RegisterServicesFromAssembly(Assembly.GetExecutingAssembly());
cfg.AddBehavior<AddReportBehavior>(); cfg.AddBehavior<AddReportBehavior>();
cfg.AddBehavior<SavePdfBehavior>(); cfg.AddBehavior<SavePdfBehavior>();
cfg.AddBehavior<CreateHistoryBehavior>();
}); });
// Add memory cache // Add memory cache

View File

@ -1,6 +1,4 @@
using MediatR; using MediatR;
using EnvelopeGenerator.Application.Histories.Commands;
using EnvelopeGenerator.Domain.Constants;
using EnvelopeGenerator.Application.EnvelopeReports; using EnvelopeGenerator.Application.EnvelopeReports;
using EnvelopeGenerator.Application.Exceptions; using EnvelopeGenerator.Application.Exceptions;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
@ -40,17 +38,9 @@ public class AddReportBehavior : IPipelineBehavior<BurnPdfCommand, byte[]>
{ {
var docResult = await next(cancel); var docResult = await next(cancel);
if (!request.Debug) var report = await CreateReport(request.Envelope!, cancel);
await _sender.Send(new CreateHistoryCommand()
{
EnvelopeId = request.EnvelopeId,
UserReference = "System",
Status = EnvelopeStatus.EnvelopeReportCreated,
}, cancel);
docResult = await CreateReport(request.Envelope!, cancel); var reportBase64 = Convert.ToBase64String(report);
var base64 = Convert.ToBase64String(docResult);
return docResult; return docResult;
} }
@ -71,7 +61,7 @@ public class AddReportBehavior : IPipelineBehavior<BurnPdfCommand, byte[]>
throw new CreateReportException("No report data found!"); throw new CreateReportException("No report data found!");
} }
var oBuffer = AddReportBehavior.DoCreateReport(oItems); var oBuffer = DoCreateReport(oItems);
return oBuffer; return oBuffer;
} }

View File

@ -0,0 +1,47 @@
using MediatR;
using EnvelopeGenerator.Application.Histories.Commands;
using EnvelopeGenerator.Domain.Constants;
using Microsoft.Extensions.Logging;
namespace EnvelopeGenerator.Application.Pdf.Behaviors;
/// <summary>
///
/// </summary>
public class CreateHistoryBehavior : IPipelineBehavior<BurnPdfCommand, byte[]>
{
private readonly ISender _sender;
private readonly ILogger<AddReportBehavior> _logger;
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="logger"></param>
public CreateHistoryBehavior(ISender sender, ILogger<AddReportBehavior> logger)
{
_sender = sender;
_logger = logger;
}
/// <summary>
///
/// </summary>
/// <param name="request"></param>
/// <param name="next"></param>
/// <param name="cancel"></param>
/// <returns></returns>
public async Task<byte[]> Handle(BurnPdfCommand request, RequestHandlerDelegate<byte[]> next, CancellationToken cancel)
{
if (!request.Debug)
await _sender.Send(new CreateHistoryCommand()
{
EnvelopeId = request.EnvelopeId,
UserReference = "System",
Status = EnvelopeStatus.EnvelopeReportCreated,
}, cancel);
return await next(cancel);
}
}