/// <summary> /// Setup for the VersionRule object. Since we consider this object to be an immutable type, we restrict the /// constructor to this methof and require these setup values to be passed. /// </summary> /// <param name="newActionType">See property "ActionType".</param> /// <param name="newIsPublic">See property "IsPublic".</param> /// <param name="newIsRetired">See property "IsRetired".</param> /// <param name="newNameRequiredAction">See property "NameRequiredAction".</param> /// <param name="newMajorRequiredAction">See property "MajorRequiredAction".</param> /// <param name="newMinorRequiredAction">See property "MinorRequiredAction".</param> /// <param name="newBuildRequiredAction">See property "BuildRequiredAction".</param> /// <param name="newRevisionRequiredAction">See property "RevisionRequiredAction".</param> public Rule(RequestedOperation newActionType, bool newIsPublic, bool newIsRetired, RequiredChange newNameRequiredAction, RequiredChange newMajorRequiredAction, RequiredChange newMinorRequiredAction, RequiredChange newBuildRequiredAction, RequiredChange newRevisionRequiredAction) { ActionType = newActionType; IsPublic = newIsPublic; IsRetired = newIsRetired; NameRequiredChange = newNameRequiredAction; MajorRequiredChange = newMajorRequiredAction; MinorRequiredChange = newMinorRequiredAction; BuildRequiredChange = newBuildRequiredAction; RevisionRequiredChange = newRevisionRequiredAction; }
private static int HandleVersionSectionChange(RequiredChange change, Func<int, int> incrementAction, int initialSectionValue, int resetValue) { int result = initialSectionValue; switch (change) { case RequiredChange.MustIncrement: result = incrementAction(result); break; case RequiredChange.MustReset: result = resetValue; break; } return result; }