diff --git a/src/ReC.Application/Common/Behaviors/Action/PreprocessingBehavior.cs b/src/ReC.Application/Common/Behaviors/Action/PreprocessingBehavior.cs index 4a20230..c0dc973 100644 --- a/src/ReC.Application/Common/Behaviors/Action/PreprocessingBehavior.cs +++ b/src/ReC.Application/Common/Behaviors/Action/PreprocessingBehavior.cs @@ -1,8 +1,9 @@ -using DigitalData.Core.Abstraction.Application.Repository; -using MediatR; +using MediatR; using ReC.Application.Common.Interfaces; using ReC.Application.RecActions.Commands; +using ReC.Application.Results.Commands; using ReC.Domain.Constants; +using System.Text.Json; namespace ReC.Application.Common.Behaviors.Action; @@ -10,20 +11,31 @@ public class PreprocessingBehavior(IRecDbContext context, ISender sender) : IPip { public async Task Handle(InvokeRecActionViewCommand request, RequestHandlerDelegate next, CancellationToken cancel) { + string? info = null, error = null; + try { if (request.Action.PreprocessingQuery is string query) - await context.ExecuteDynamicSqlAsync(query, cancel); + { + var result = await context.ExecuteDynamicSqlAsync(query, cancel); + info = JsonSerializer.Serialize(result); + } } catch (Exception ex) { - if(request.Action.ErrorAction == ErrorAction.Stop) - { - // save output result - return false; - } + error = ex.ToString(); } + await sender.Send(new InsertResultCommand() + { + ActionId = request.Action.Id, + Info = info, + Error = error + }, cancel); + + if (error is not null && request.Action.ErrorAction == ErrorAction.Stop) + return false; + return await next(cancel); } } \ No newline at end of file