public RequiredIfAttribute(string propertyName, object value, ConditionOps conditionOp, string errorMessage = "") { PropertyName = propertyName; ErrorMessage = errorMessage; Value = value; Comparison = Conditions[conditionOp]; }
public DateComparisonAttribute(string propertyName, ConditionOps conditionOp, string errorMessage = "", bool nullable = false, int maxPlusMonth = 0) { PropertyName = propertyName; ErrorMessage = errorMessage; Comparison = Conditions[conditionOp]; Nullable = nullable; MaxPlusMonth = maxPlusMonth; }
public CorrectValueRuleNodeState( VerifiableMemberContract contract, IGroupedValueToken groupedToken, IValueToken currentTokenPtr, ConditionOps implicitNextOps = ConditionOps.Break ) { _contract = contract; _rootNode = groupedToken; _workingNode = groupedToken; _currentTokenPtr = currentTokenPtr; _nextOps = implicitNextOps; }
/// <summary> /// 如果 Right 的优先级高于 Left, /// 则需要将 Left 打包为 GroupedToken,然后再进行联立 /// </summary> /// <param name="left"></param> /// <param name="right"></param> /// <returns></returns> public static bool IsHigherPriority(ConditionOps left, ConditionOps right) { if (left == ConditionOps.Break) { return(false); } if (left == ConditionOps.And && left < right) { return(true); } if (left == ConditionOps.Or) { return(false); } return(false); }
public void NextOps(ConditionOps ops, bool ignoreFixBreakOps, bool tailOps) { if (!ignoreFixBreakOps && ops == ConditionOps.Break) { ops = ConditionOps.And; } if (ConditionOpsHelper.IsHigherPriority(_nextOps, ops)) { DivideNewWorkingNode(ops); _nextOps = ops; return; } if (!tailOps) { _workingNode.Relationship = ops; } _nextOps = ops; }