Add MediatR pipeline behaviors for SignCommand

Introduced MediatR to the project by adding the `using MediatR;` directive in `DependencyInjection.cs`. Registered pipeline behaviors for the `Signature.Commands.SignCommand` to enforce a structured execution order:

1. AnnotationBehavior: Saves annotations.
2. DocStatusBehavior: Creates document status.
3. HistoryBehavior: Records history.
4. SendSignedMailBehavior: Sends notification email (executes last).

These changes improve the command handling pipeline by ensuring sequential and reliable execution of behaviors.
This commit is contained in:
2026-06-09 18:33:27 +02:00
parent 5a8809ffc1
commit ecd695ad37

View File

@@ -7,6 +7,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using QRCoder;
using System.Reflection;
using MediatR;
namespace EnvelopeGenerator.Application;
@@ -56,6 +57,19 @@ public static class DependencyInjection
services.AddMediatR(cfg =>
{
cfg.RegisterServicesFromAssembly(Assembly.GetExecutingAssembly());
// Register SignCommand pipeline behaviors in execution order
// 1. AnnotationBehavior - Saves annotations (executes first)
cfg.AddBehavior<IPipelineBehavior<Signature.Commands.SignCommand, Unit>, Signature.Behaviors.AnnotationBehavior>();
// 2. DocStatusBehavior - Creates document status (executes second)
cfg.AddBehavior<IPipelineBehavior<Signature.Commands.SignCommand, Unit>, Signature.Behaviors.DocStatusBehavior>();
// 3. HistoryBehavior - Records history (executes third)
cfg.AddBehavior<IPipelineBehavior<Signature.Commands.SignCommand, Unit>, Signature.Behaviors.HistoryBehavior>();
// 4. SendSignedMailBehavior - Sends notification email (executes LAST, only if all previous succeed)
cfg.AddBehavior<IPipelineBehavior<Signature.Commands.SignCommand, Unit>, Signature.Behaviors.SendSignedMailBehavior>();
});
return services;