namespace CMSMicroservice.Application.CommissionCQ.Queries.GetCommissionPayoutHistory; public class GetCommissionPayoutHistoryQueryValidator : AbstractValidator { public GetCommissionPayoutHistoryQueryValidator() { RuleFor(x => x.PayoutId) .GreaterThan(0) .WithMessage("شناسه پرداخت معتبر نیست") .When(x => x.PayoutId.HasValue); RuleFor(x => x.UserId) .GreaterThan(0) .WithMessage("شناسه کاربر معتبر نیست") .When(x => x.UserId.HasValue); RuleFor(x => x.WeekDefinitionId) .NotNull() .GreaterThan(0) .WithMessage("شماره هفته نمی‌تواند خالی باشد"); } public Func>> ValidateValue => async (model, propertyName) => { var result = await ValidateAsync( ValidationContext.CreateWithOptions( (GetCommissionPayoutHistoryQuery)model, x => x.IncludeProperties(propertyName))); if (result.IsValid) return Array.Empty(); return result.Errors.Select(e => e.ErrorMessage); }; }