From 752f781f549bc4c759f81b626c0083a3b2660411 Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 17 Dec 2025 11:37:58 +0100 Subject: [PATCH] Add AuthScopedValidator and register FluentValidation Introduced AuthScopedValidator to enforce non-empty AddedWho on IAuthScoped entities with a clear error message. Registered all validators from the assembly in DI to enable automatic validation for authentication-scoped entities. --- .../Common/Validations/AuthScopedValidator.cs | 14 ++++++++++++++ src/ReC.Infrastructure/DependencyInjection.cs | 4 ++++ 2 files changed, 18 insertions(+) create mode 100644 src/ReC.Application/Common/Validations/AuthScopedValidator.cs diff --git a/src/ReC.Application/Common/Validations/AuthScopedValidator.cs b/src/ReC.Application/Common/Validations/AuthScopedValidator.cs new file mode 100644 index 0000000..c41d654 --- /dev/null +++ b/src/ReC.Application/Common/Validations/AuthScopedValidator.cs @@ -0,0 +1,14 @@ +using FluentValidation; +using ReC.Application.Common.Interfaces; + +namespace ReC.Application.Common.Validations; + +public class AuthScopedValidator : AbstractValidator +{ + public AuthScopedValidator() + { + RuleFor(x => x.AddedWho) + .NotEmpty() + .WithMessage("The 'AddedWho' field is required. A missing value may indicate an API configuration issue. Please contact your system administrator for assistance."); + } +} diff --git a/src/ReC.Infrastructure/DependencyInjection.cs b/src/ReC.Infrastructure/DependencyInjection.cs index 309c59b..b731e33 100644 --- a/src/ReC.Infrastructure/DependencyInjection.cs +++ b/src/ReC.Infrastructure/DependencyInjection.cs @@ -1,7 +1,9 @@ using DigitalData.Core.Infrastructure; +using FluentValidation; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using ReC.Application.Common.Interfaces; +using ReC.Application.Common.Validations; using ReC.Domain.Entities; namespace ReC.Infrastructure; @@ -23,6 +25,8 @@ public static class DependencyInjection services.AddDbRepository(opt => opt.RegisterFromAssembly(typeof(RecActionView).Assembly)); + services.AddValidatorsFromAssembly(typeof(AuthScopedValidator).Assembly); + return services; }