namespace CMSMicroservice.Application.UserOrderCQ.Queries.GetOrdersByDateRange; public class GetOrdersByDateRangeQueryValidator : AbstractValidator { public GetOrdersByDateRangeQueryValidator() { RuleFor(x => x.StartDate) .LessThanOrEqualTo(x => x.EndDate) .WithMessage("تاریخ شروع باید کوچکتر یا مساوی تاریخ پایان باشد"); RuleFor(x => x.EndDate) .LessThanOrEqualTo(DateTime.Now.AddDays(1)) .WithMessage("تاریخ پایان نمی‌تواند در آینده باشد"); RuleFor(x => x.PageIndex) .GreaterThan(0) .WithMessage("شماره صفحه باید بزرگتر از 0 باشد"); RuleFor(x => x.PageSize) .InclusiveBetween(1, 100) .WithMessage("تعداد در صفحه باید بین 1 تا 100 باشد"); // بازه زمانی نباید بیش از 1 سال باشد RuleFor(x => x) .Must(x => (x.EndDate - x.StartDate).TotalDays <= 365) .WithMessage("بازه زمانی نمی‌تواند بیش از 1 سال باشد"); } }