public override ValidationError ValidateActivityChange(Activity activity, ActivityChangeAction action)
 {
     if (activity == null)
     {
         throw new ArgumentNullException("activity");
     }
     if (action == null)
     {
         throw new ArgumentNullException("action");
     }
     if (((activity.ExecutionStatus != ActivityExecutionStatus.Initialized) && (activity.ExecutionStatus != ActivityExecutionStatus.Executing)) && (activity.ExecutionStatus != ActivityExecutionStatus.Closed))
     {
         return new ValidationError(SR.GetString("Error_DynamicActivity2", new object[] { activity.QualifiedName, activity.ExecutionStatus, activity.GetType().FullName }), 0x50f);
     }
     RemovedActivityAction action2 = action as RemovedActivityAction;
     if (action2 != null)
     {
         StateActivity originalRemovedActivity = action2.OriginalRemovedActivity as StateActivity;
         if (originalRemovedActivity != null)
         {
             return new ValidationError(SR.GetError_CantRemoveState(originalRemovedActivity.QualifiedName), 0x61b);
         }
         if (activity.ExecutionStatus == ActivityExecutionStatus.Executing)
         {
             EventDrivenActivity activity3 = action2.OriginalRemovedActivity as EventDrivenActivity;
             if (activity3 != null)
             {
                 return new ValidationError(SR.GetError_CantRemoveEventDrivenFromExecutingState(activity3.QualifiedName, activity.QualifiedName), 0x620);
             }
         }
     }
     return null;
 }
コード例 #2
0
 public virtual ValidationError ValidateActivityChange(Activity activity, ActivityChangeAction action)
 {
     if (activity == null)
     {
         throw new ArgumentNullException("activity");
     }
     if (action == null)
     {
         throw new ArgumentNullException("action");
     }
     return null;
 }
 public override ValidationError ValidateActivityChange(Activity activity, ActivityChangeAction action)
 {
     if (activity == null)
     {
         throw new ArgumentNullException("activity");
     }
     if (action == null)
     {
         throw new ArgumentNullException("action");
     }
     if ((activity.ExecutionStatus != ActivityExecutionStatus.Initialized) && (activity.ExecutionStatus != ActivityExecutionStatus.Closed))
     {
         return new ValidationError(SR.GetString("Error_DynamicActivity", new object[] { activity.QualifiedName, Enum.GetName(typeof(ActivityExecutionStatus), activity.ExecutionStatus) }), 260);
     }
     return null;
 }
 public override ValidationError ValidateActivityChange(Activity activity, ActivityChangeAction action)
 {
     if (activity == null)
     {
         throw new ArgumentNullException("activity");
     }
     if (action == null)
     {
         throw new ArgumentNullException("action");
     }
     if (((activity.ExecutionStatus != ActivityExecutionStatus.Initialized) && (activity.ExecutionStatus != ActivityExecutionStatus.Executing)) && (activity.ExecutionStatus != ActivityExecutionStatus.Closed))
     {
         return new ValidationError(SR.GetString("Error_DynamicActivity2", new object[] { activity.QualifiedName, activity.ExecutionStatus, activity.GetType().FullName }), 0x50f);
     }
     return null;
 }
 public override ValidationError ValidateActivityChange(Activity activity, ActivityChangeAction action)
 {
     if (activity == null)
     {
         throw new ArgumentNullException("activity");
     }
     if (action == null)
     {
         throw new ArgumentNullException("action");
     }
     AddedActivityAction action2 = action as AddedActivityAction;
     if (action2 != null)
     {
         Queue<Activity> queue = new Queue<Activity>();
         queue.Enqueue(action2.AddedActivity);
         while (queue.Count != 0)
         {
             Activity activity2 = queue.Dequeue();
             if (activity2.SupportsTransaction)
             {
                 return new ValidationError(SR.GetString("Error_AtomicScopeNestedInNonLRT"), 0x52e);
             }
             if (activity2.PersistOnClose)
             {
                 return new ValidationError(SR.GetString("Error_NestedPersistOnClose", new object[] { activity.QualifiedName }), 0x1a2);
             }
             if (activity2 is ICompensatableActivity)
             {
                 return new ValidationError(SR.GetString("Error_NestedCompensatableActivity", new object[] { activity.QualifiedName }), 0x1a6);
             }
             CompositeActivity activity3 = activity2 as CompositeActivity;
             if (activity3 != null)
             {
                 foreach (Activity activity4 in activity3.EnabledActivities)
                 {
                     queue.Enqueue(activity4);
                 }
             }
         }
     }
     return base.ValidateActivityChange(activity, action);
 }
 public override ValidationError ValidateActivityChange(Activity activity, ActivityChangeAction action)
 {
     if (activity == null)
     {
         throw new ArgumentNullException("activity");
     }
     if (action == null)
     {
         throw new ArgumentNullException("action");
     }
     RemovedActivityAction action2 = action as RemovedActivityAction;
     if ((action2 != null) && (action2.RemovedActivityIndex == 0))
     {
         return new ValidationError(SR.GetString("Error_EventActivityIsImmutable"), 260, false);
     }
     AddedActivityAction action3 = action as AddedActivityAction;
     if ((action3 != null) && (action3.Index == 0))
     {
         return new ValidationError(SR.GetString("Error_EventActivityIsImmutable"), 260, false);
     }
     return base.ValidateActivityChange(activity, action);
 }
コード例 #7
0
        public override ValidationError ValidateActivityChange(Activity activity, ActivityChangeAction action)
        {
            if (activity == null)
                throw new ArgumentNullException("activity");
            if (action == null)
                throw new ArgumentNullException("action");

            if (activity.ExecutionStatus != ActivityExecutionStatus.Initialized &&
                activity.ExecutionStatus != ActivityExecutionStatus.Executing &&
                activity.ExecutionStatus != ActivityExecutionStatus.Closed)
            {
                return new ValidationError(SR.GetString(SR.Error_DynamicActivity2, activity.QualifiedName, activity.ExecutionStatus, activity.GetType().FullName), ErrorNumbers.Error_DynamicActivity2);
            }

            RemovedActivityAction remove = action as RemovedActivityAction;
            if (remove != null)
            {
                StateActivity removedState = remove.OriginalRemovedActivity as StateActivity;
                if (removedState != null)
                {
                    // we don't have a way to check if the removed
                    // activity is executing or not, so if the user is trying to 
                    // remove a StateActivity, we simply disallow it.
                    // 

                    return new ValidationError(
                        SR.GetError_CantRemoveState(removedState.QualifiedName),
                        ErrorNumbers.Error_CantRemoveState);
                }

                if (activity.ExecutionStatus == ActivityExecutionStatus.Executing)
                {
                    EventDrivenActivity removedEventDriven = remove.OriginalRemovedActivity as EventDrivenActivity;
                    if (removedEventDriven != null)
                    {
                        return new ValidationError(
                            SR.GetError_CantRemoveEventDrivenFromExecutingState(removedEventDriven.QualifiedName, activity.QualifiedName),
                            ErrorNumbers.Error_CantRemoveEventDrivenFromExecutingState);
                    }
                }
            }
            return null;
        }
コード例 #8
0
        public override ValidationError ValidateActivityChange(Activity activity, ActivityChangeAction action)
        {
            if (activity == null)
                throw new ArgumentNullException("activity");
            if (action == null)
                throw new ArgumentNullException("action");

            RemovedActivityAction removedAction = action as RemovedActivityAction;
            if (removedAction != null && removedAction.RemovedActivityIndex == 0)
            {
                return new ValidationError(SR.GetString(SR.Error_EventActivityIsImmutable), ErrorNumbers.Error_DynamicActivity, false);
            }
            else
            {
                AddedActivityAction addedAction = action as AddedActivityAction;

                if (addedAction != null && addedAction.Index == 0)
                    return new ValidationError(SR.GetString(SR.Error_EventActivityIsImmutable), ErrorNumbers.Error_DynamicActivity, false);
            }
            return base.ValidateActivityChange(activity, action);
        }