1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
using System;
using System.Diagnostics;
using System.Reflection;
using System.Collections;
using System.Workflow.ComponentModel;
using System.Workflow.Runtime;
using System.Xml;
using System.Workflow.Activities.Common;
namespace System.Workflow.Activities
{
internal static class ActivityHelpers
{
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);
}
}
}
}
}
|