using Femto.Modules.Media.Data; using MediatR; namespace Femto.Modules.Media.Infrastructure.PipelineBehaviours; /// /// automatically call unit of work after all requuests /// internal class SaveChangesPipelineBehaviour(MediaContext context) : IPipelineBehavior where TRequest : notnull { public async Task Handle( TRequest request, RequestHandlerDelegate next, CancellationToken cancellationToken ) { var response = await next(cancellationToken); if (context.ChangeTracker.HasChanges()) await context.SaveChangesAsync(cancellationToken); return response; } }