diff --git a/src/ReC.Application/Common/Behaviors/Action/BodyQueryBehavior.cs b/src/ReC.Application/Common/Behaviors/Action/BodyQueryBehavior.cs index 26b27cc..f739ff0 100644 --- a/src/ReC.Application/Common/Behaviors/Action/BodyQueryBehavior.cs +++ b/src/ReC.Application/Common/Behaviors/Action/BodyQueryBehavior.cs @@ -1,6 +1,7 @@ using MediatR; using Microsoft.EntityFrameworkCore; using ReC.Application.Common.Dto; +using ReC.Application.Common.Exceptions; using ReC.Application.Common.Interfaces; namespace ReC.Application.Common.Behaviors.Action; @@ -31,7 +32,10 @@ public class BodyQueryBehavior(IRecDbContext dbContext) : I try { var scalar = await command.ExecuteScalarAsync(cancel); - action.Body = scalar as string; + + action.Body = scalar as string + ?? throw new DataIntegrityException( + $"Body query returned no result or a null value. ActionId: {action.Id}, ProfileId: {action.ProfileId}"); } finally { diff --git a/src/ReC.Application/Common/Behaviors/Action/HeaderQueryBehavior.cs b/src/ReC.Application/Common/Behaviors/Action/HeaderQueryBehavior.cs index 1a2ec24..1ff5d57 100644 --- a/src/ReC.Application/Common/Behaviors/Action/HeaderQueryBehavior.cs +++ b/src/ReC.Application/Common/Behaviors/Action/HeaderQueryBehavior.cs @@ -1,13 +1,13 @@ using MediatR; using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.Logging; using ReC.Application.Common.Dto; +using ReC.Application.Common.Exceptions; using ReC.Application.Common.Interfaces; using System.Text.Json; namespace ReC.Application.Common.Behaviors.Action; -public class HeaderQueryBehavior(IRecDbContext dbContext, ILogger>? logger = null) : IPipelineBehavior +public class HeaderQueryBehavior(IRecDbContext dbContext) : IPipelineBehavior where TRequest : notnull where TResponse : IEnumerable { @@ -35,20 +35,12 @@ public class HeaderQueryBehavior(IRecDbContext dbContext, I var scalar = await command.ExecuteScalarAsync(cancel); if (scalar is not string rawHeader) - { - logger?.LogWarning("Header query did not return a result or returned a null value. Profile ID: {ProfileId}, Action ID: {Id}", action.ProfileId, action.Id); - return; - } + throw new DataIntegrityException( + $"Header query returned no result or a null value. ActionId: {action.Id}, ProfileId: {action.ProfileId}"); - var headerDict = JsonSerializer.Deserialize>(rawHeader); - - if (headerDict is null) - { - logger?.LogWarning( - "Header JSON deserialization returned null. RawHeader: {RawHeader}, ProfileId: {ProfileId}, Id: {Id}", - rawHeader, action.ProfileId, action.Id); - return; - } + var headerDict = JsonSerializer.Deserialize>(rawHeader) + ?? throw new DataIntegrityException( + $"Header query returned invalid JSON. ActionId: {action.Id}, ProfileId: {action.ProfileId}"); action.Headers = headerDict.ToDictionary(header => header.Key, kvp => kvp.Value.ToString()); }