From e6285f13f756842d77a2953d7aa2e86122e6a20c Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Tue, 11 Nov 2025 13:08:34 +0100 Subject: [PATCH] feat(AddReportBehavior): add conditional history creation based on Debug flag in AddReportBehavior --- .../Pdf/Behaviors/AddReportBehavior.cs | 13 +++++++------ .../Pdf/BurnPdfCommand.cs | 19 ++++++++++++++----- .../appsettings.Development.json | 5 +++-- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/EnvelopeGenerator.Application/Pdf/Behaviors/AddReportBehavior.cs b/EnvelopeGenerator.Application/Pdf/Behaviors/AddReportBehavior.cs index 983cbf7a..ec0266dd 100644 --- a/EnvelopeGenerator.Application/Pdf/Behaviors/AddReportBehavior.cs +++ b/EnvelopeGenerator.Application/Pdf/Behaviors/AddReportBehavior.cs @@ -32,12 +32,13 @@ public class AddReportBehavior : IPipelineBehavior var docResult = await next(cancel); var base64 = Convert.ToBase64String(docResult); - await _sender.Send(new CreateHistoryCommand() - { - EnvelopeId = request.EnvelopeId, - UserReference = "System", - Status = EnvelopeStatus.EnvelopeReportCreated, - }, cancel); + if (!request.Debug) + await _sender.Send(new CreateHistoryCommand() + { + EnvelopeId = request.EnvelopeId, + UserReference = "System", + Status = EnvelopeStatus.EnvelopeReportCreated, + }, cancel); return docResult; } diff --git a/EnvelopeGenerator.Application/Pdf/BurnPdfCommand.cs b/EnvelopeGenerator.Application/Pdf/BurnPdfCommand.cs index b5dfdcc5..8184d0e7 100644 --- a/EnvelopeGenerator.Application/Pdf/BurnPdfCommand.cs +++ b/EnvelopeGenerator.Application/Pdf/BurnPdfCommand.cs @@ -9,6 +9,7 @@ using EnvelopeGenerator.Domain.Entities; using GdPicture14; using MediatR; using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Newtonsoft.Json; @@ -18,7 +19,10 @@ namespace EnvelopeGenerator.Application.Pdf; /// /// /// -public record BurnPdfCommand(int? EnvelopeId = null, string? EnvelopeUuid = null) : IRequest; +public record BurnPdfCommand(int? EnvelopeId = null, string? EnvelopeUuid = null) : IRequest +{ + internal bool Debug { get; set; } +} /// /// @@ -32,7 +36,7 @@ public static class BurnPdfCommandExtensions /// /// /// - public static Task BurnPdf(this ISender sender, int envelopeId, CancellationToken cancel = default) + public static Task BurnPdf(this ISender sender, int envelopeId, CancellationToken cancel = default) => sender.Send(new BurnPdfCommand(EnvelopeId: envelopeId), cancel); /// @@ -61,6 +65,8 @@ public class BurnPdfCommandHandler : IRequestHandler private readonly IRepository _docStatusRepo; + private readonly IConfiguration _config; + /// /// /// @@ -69,13 +75,15 @@ public class BurnPdfCommandHandler : IRequestHandler /// /// /// - public BurnPdfCommandHandler(IOptions pdfBurnerParams, AnnotationManager manager, ILogger logger, IRepository envRepo, IRepository docStatusRepo) + /// + public BurnPdfCommandHandler(IOptions pdfBurnerParams, AnnotationManager manager, ILogger logger, IRepository envRepo, IRepository docStatusRepo, IConfiguration config) { _options = pdfBurnerParams.Value; _manager = manager; _docStatusRepo = docStatusRepo; _logger = logger; _envRepo = envRepo; + _config = config; } @@ -88,8 +96,9 @@ public class BurnPdfCommandHandler : IRequestHandler /// public async Task Handle(BurnPdfCommand request, CancellationToken cancel) { - var envQuery = - request.EnvelopeId is not null ? _envRepo.Where(env => env.Id == request.EnvelopeId) : + request.Debug = _config.GetValue("Debug"); + var envQuery = + request.EnvelopeId is not null ? _envRepo.Where(env => env.Id == request.EnvelopeId) : request.EnvelopeUuid is not null ? _envRepo.Where(env => env.Uuid == request.EnvelopeUuid) : throw new BadRequestException("Request validation failed: Either Envelope Id or Envelope Uuid must be provided."); diff --git a/EnvelopeGenerator.Finalizer/appsettings.Development.json b/EnvelopeGenerator.Finalizer/appsettings.Development.json index b2dcdb67..7589f277 100644 --- a/EnvelopeGenerator.Finalizer/appsettings.Development.json +++ b/EnvelopeGenerator.Finalizer/appsettings.Development.json @@ -4,5 +4,6 @@ "Default": "Information", "Microsoft.Hosting.Lifetime": "Information" } - } -} + }, + "Debug": true +} \ No newline at end of file