namespace CMSMicroservice.Application.TransactionsCQ.Commands.UpdateTransactions; public class UpdateTransactionsCommandValidator : AbstractValidator { public UpdateTransactionsCommandValidator() { RuleFor(model => model.Id) .NotNull(); RuleFor(model => model.Amount) .NotNull(); RuleFor(model => model.Description) .NotEmpty(); RuleFor(model => model.PaymentStatus) .IsInEnum() .NotNull(); RuleFor(model => model.Type) .IsInEnum() .NotNull(); } public Func>> ValidateValue => async (model, propertyName) => { var result = await ValidateAsync(ValidationContext.CreateWithOptions((UpdateTransactionsCommand)model, x => x.IncludeProperties(propertyName))); if (result.IsValid) return Array.Empty(); return result.Errors.Select(e => e.ErrorMessage); }; }