Например. валидатор:
Код: Выделить всё
RuleFor(x => x.StartDate.Date.Day)
.Custom((day, context) =>
{
if (!context.RootContextData.TryGetValue("TargetDate", out var targetDate)) return;
var dateVm = context.InstanceToValidate;
if (DatesHelper.SourceDateStringIsGreaterThanTargetDateString(
dateVm.StartDate.DateInputAsString(),
targetDate as string) == true)
{
context.AddFailure("The Start date must be on or before the target date for the action");
}
});
Код: Выделить всё
. . .
var repositoryResult = customerRepo.Result;
if (!ModelState.IsValid)
{
return View(vm);
}
var validationContext = new ValidationContext(vm)
{
RootContextData =
{
["TargetDate"] = repositoryResult.Dates.Target
}
};
var validator = new StartDateValidator();
var validationResult = await validator.ValidateAsync(validationContext);
if (!validationResult.IsValid)
{
ModelState.AddModelError("StartDate.Date.Day", validationResult.Errors.First().ErrorMessage);
return View(vm);
}
. . .
Подробнее здесь: https://stackoverflow.com/questions/700 ... controller
Мобильная версия