У меня есть следующее правило:Объединение нескольких правил в одном правиле
RuleFor(x => x.FromNumber).NotEmpty().GreaterThan(0).When(x => x.NumbersRequired).WithState(x => MyErrorEnum.FromNumberRequired);
Свойство FromNumber
имеет тип int?
. Проблема с вышесказанным заключается в том, что CustomState
установлен только для GreaterThan
. Если значение равно null или 0, CustomState
- null.
Если я изменю выше к следующему правилу до сих пор работает, как ожидалось:
RuleFor(x => x.FromNumber ?? 0).GreaterThan(0).When(x => x.NumbersRequired).WithState(x => MyErrorEnum.FromNumberRequired);
Но есть лучший способ совместить оба правила в одно правило, вместо того, чтобы использовать условный оператор нулевой?
Как бы реализовать это правило: 'RuleFor (x => x.ToNumber) .NotEmpty(). GreaterThan (x => x.FromNumber)'? –
@ Ivan-MarkDebono использует другую перегрузку с доступом к модели: 'RuleFor (x => x.ToNumber) .Muxt ((model, x) => x! = Null && x> model.FromNumber);' –