29 lines
1.2 KiB
C#
29 lines
1.2 KiB
C#
namespace CMSMicroservice.Application.UserOrderCQ.Queries.GetOrdersByDateRange;
|
|
|
|
public class GetOrdersByDateRangeQueryValidator : AbstractValidator<GetOrdersByDateRangeQuery>
|
|
{
|
|
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 سال باشد");
|
|
}
|
|
}
|