System.Activities.Statements.InternalState.ValidateDUInUnconditionalTransition C# (CSharp) Метод

ValidateDUInUnconditionalTransition() приватный статический Метод

private static ValidateDUInUnconditionalTransition ( NativeActivityUpdateMapMetadata metadata, System.Activities.Statements.InternalTransition updatedTransition, System.Activities.Statements.InternalTransition originalTransition, &errorMessage ) : bool
metadata NativeActivityUpdateMapMetadata
updatedTransition System.Activities.Statements.InternalTransition
originalTransition System.Activities.Statements.InternalTransition
Результат bool
        private static bool ValidateDUInUnconditionalTransition(NativeActivityUpdateMapMetadata metadata, InternalTransition updatedTransition, InternalTransition originalTransition, out string errorMessage)
        {
            Fx.Assert(originalTransition.IsUnconditional, "Transition should be unconditional in the original definition.");
            Activity originalAction = originalTransition.TransitionDataList[0].Action;

            foreach (TransitionData transitionData in updatedTransition.TransitionDataList)
            {
                Activity updatedAction = transitionData.Action;
                Activity actionMatch = metadata.GetMatch(updatedAction);
                Activity conditionMatch = metadata.GetMatch(transitionData.Condition);

                if ((null == originalAction && null != actionMatch) ||
                    (null != originalAction && null != actionMatch && !object.ReferenceEquals(originalAction, actionMatch)))
                {
                    // Transition.Action is an activity moved from elsewhere within the InternalState
                    errorMessage = SR.MovingActivitiesInStateBlockDU;
                    return false;
                }
            }

            errorMessage = string.Empty;
            metadata.SaveOriginalValue(updatedTransition.Trigger, originalTransition.InternalTransitionIndex);
            return true;
        }