Beispiel #1
0
 internal static void InitializeCorrelationTokenCollection(Activity activity, CorrelationToken correlator)
 {
     if ((correlator != null) && !string.IsNullOrEmpty(correlator.OwnerActivityName))
     {
         string   ownerActivityName = correlator.OwnerActivityName;
         Activity activityByName    = activity.GetActivityByName(ownerActivityName);
         if (activityByName == null)
         {
             activityByName = Helpers.ParseActivityForBind(activity, ownerActivityName);
         }
         if (activityByName == null)
         {
             throw new ArgumentException("ownerActivity");
         }
         CorrelationTokenCollection tokens = activityByName.GetValue(CorrelationTokenCollection.CorrelationTokenCollectionProperty) as CorrelationTokenCollection;
         if (tokens == null)
         {
             tokens = new CorrelationTokenCollection();
             activityByName.SetValue(CorrelationTokenCollection.CorrelationTokenCollectionProperty, tokens);
         }
         if (!tokens.Contains(correlator.Name))
         {
             tokens.Add(correlator);
         }
     }
 }
 internal static void InitializeCorrelationTokenCollection(Activity activity, CorrelationToken correlator)
 {
     if ((correlator != null) && !string.IsNullOrEmpty(correlator.OwnerActivityName))
     {
         string ownerActivityName = correlator.OwnerActivityName;
         Activity activityByName = activity.GetActivityByName(ownerActivityName);
         if (activityByName == null)
         {
             activityByName = Helpers.ParseActivityForBind(activity, ownerActivityName);
         }
         if (activityByName == null)
         {
             throw new ArgumentException("ownerActivity");
         }
         CorrelationTokenCollection tokens = activityByName.GetValue(CorrelationTokenCollection.CorrelationTokenCollectionProperty) as CorrelationTokenCollection;
         if (tokens == null)
         {
             tokens = new CorrelationTokenCollection();
             activityByName.SetValue(CorrelationTokenCollection.CorrelationTokenCollectionProperty, tokens);
         }
         if (!tokens.Contains(correlator.Name))
         {
             tokens.Add(correlator);
         }
     }
 }
Beispiel #3
0
        internal static void InitializeCorrelationTokenCollection(Activity activity, CorrelationToken correlator)
        {
            if (correlator != null && !String.IsNullOrEmpty(correlator.OwnerActivityName))
            {
                string   ownerActivityId = correlator.OwnerActivityName;
                Activity owner           = activity.GetActivityByName(ownerActivityId);
                if (owner == null)
                {
                    owner = System.Workflow.Activities.Common.Helpers.ParseActivityForBind(activity, ownerActivityId);
                }
                if (owner == null)
                {
                    throw new ArgumentException("ownerActivity");
                }

                CorrelationTokenCollection collection = owner.GetValue(CorrelationTokenCollection.CorrelationTokenCollectionProperty) as CorrelationTokenCollection;
                if (collection == null)
                {
                    collection = new CorrelationTokenCollection();
                    owner.SetValue(CorrelationTokenCollection.CorrelationTokenCollectionProperty, collection);
                }

                if (!collection.Contains(correlator.Name))
                {
                    collection.Add(correlator);
                }
            }
        }
 public void ActivityStatusChanged(System.Workflow.ComponentModel.Activity activity, bool transacted, bool committed)
 {
     if (!committed)
     {
         if (this.trackingEnabled)
         {
             this.ServiceProvider.TrackActivityStatusChange(activity, this.eventCounter++);
         }
         if (activity.ExecutionStatus == ActivityExecutionStatus.Closed)
         {
             this.ScheduleDelayedItems(activity);
         }
     }
     if ((activity.ExecutionStatus == ActivityExecutionStatus.Closed) && (!(activity is ICompensatableActivity) || ((activity is ICompensatableActivity) && activity.CanUninitializeNow)))
     {
         CorrelationTokenCollection.UninitializeCorrelationTokens(activity);
     }
 }
        private static CorrelationToken GetCorrelationToken(Activity activity)
        {
            DependencyProperty dependencyProperty = DependencyProperty.FromName("CorrelationToken", activity.GetType());

            if (dependencyProperty == null)
            {
                dependencyProperty = DependencyProperty.FromName("CorrelationToken", activity.GetType().BaseType);
            }
            CorrelationToken token = activity.GetValue(dependencyProperty) as CorrelationToken;

            if (token == null)
            {
                throw new InvalidOperationException(SR.GetString("Error_CorrelationTokenMissing", new object[] { activity.Name }));
            }
            CorrelationToken token2 = CorrelationTokenCollection.GetCorrelationToken(activity, token.Name, token.OwnerActivityName);

            if (token2 == null)
            {
                throw new InvalidOperationException(SR.GetString("Error_CorrelationTokenMissing", new object[] { activity.Name }));
            }
            return(token2);
        }
Beispiel #6
0
        internal static void InitializeCorrelationTokenCollection(Activity activity, CorrelationToken correlator)
        {
            if (correlator != null && !String.IsNullOrEmpty(correlator.OwnerActivityName))
            {
                string ownerActivityId = correlator.OwnerActivityName;
                Activity owner = activity.GetActivityByName(ownerActivityId);
                if (owner == null)
                    owner = System.Workflow.Activities.Common.Helpers.ParseActivityForBind(activity, ownerActivityId);
                if (owner == null)
                    throw new ArgumentException("ownerActivity");

                CorrelationTokenCollection collection = owner.GetValue(CorrelationTokenCollection.CorrelationTokenCollectionProperty) as CorrelationTokenCollection;
                if (collection == null)
                {
                    collection = new CorrelationTokenCollection();
                    owner.SetValue(CorrelationTokenCollection.CorrelationTokenCollectionProperty, collection);
                }

                if (!collection.Contains(correlator.Name))
                {
                    collection.Add(correlator);
                }
            }
        }
Beispiel #7
0
        private static CorrelationToken GetCorrelationToken(Activity activity)
        {
            DependencyProperty dependencyProperty = DependencyProperty.FromName("CorrelationToken", activity.GetType());

            if (dependencyProperty == null)
            {
                dependencyProperty = DependencyProperty.FromName("CorrelationToken", activity.GetType().BaseType);
            }
            CorrelationToken reference = activity.GetValue(dependencyProperty) as CorrelationToken;

            if (reference == null)
            {
                throw new InvalidOperationException(SR.GetString(SR.Error_CorrelationTokenMissing, activity.Name));
            }

            CorrelationToken correlator = CorrelationTokenCollection.GetCorrelationToken(activity, reference.Name, reference.OwnerActivityName);

            if (correlator == null)
            {
                throw new InvalidOperationException(SR.GetString(SR.Error_CorrelationTokenMissing, activity.Name));
            }

            return(correlator);
        }
Beispiel #8
0
        public void ActivityStatusChanged(Activity activity, bool transacted, bool committed)
        {
            if (!committed)
            {
                // Forward to 4.0 tracking mechanism, AEC.Track
                if (this.trackingEnabled)
                {
                    this.ServiceProvider.TrackActivityStatusChange(activity, this.eventCounter++);
                }

                if (activity.ExecutionStatus == ActivityExecutionStatus.Closed)
                {
                    this.ScheduleDelayedItems(activity);
                }
            }

            if (activity.ExecutionStatus == ActivityExecutionStatus.Closed)
            {
                if (!(activity is ICompensatableActivity) || ((activity is ICompensatableActivity) && activity.CanUninitializeNow))
                {
                    CorrelationTokenCollection.UninitializeCorrelationTokens(activity);
                }
            }
        }