public static bool Validate(SetStateActivity setState, ValidationErrorCollection validationErrors) { SetStateValidator.SetStateContainment containment = new SetStateValidator.SetStateContainment(); ValidateContainment(containment, setState); if (containment.validParentFound && containment.validParentStateFound) { return(true); } validationErrors.Add(new ValidationError(SR.GetError_SetStateOnlyWorksOnStateMachineWorkflow(), 0x5f2)); return(false); }
private static void ValidateParentState(SetStateValidator.SetStateContainment containment, CompositeActivity activity) { if (activity.Parent != null) { if (activity.Parent is StateActivity) { containment.validParentStateFound = true; } else { ValidateParentState(containment, activity.Parent); } } }
private static void ValidateContainment(SetStateValidator.SetStateContainment containment, Activity activity) { if ((activity.Parent == null) || (activity.Parent == activity)) { containment.validParentFound = false; } else if (SetStateValidator.IsValidContainer(activity.Parent)) { ValidateParentState(containment, activity.Parent); } else { ValidateContainment(containment, activity.Parent); } }