コード例 #1
0
        private static Activities GetActivities(IList <IBaseElement> baseElements)
        {
            Activities activities = new Activities();

            activities.Activity = new Activity[baseElements.Count];
            int counter = 0;

            foreach (IBaseElement baseElement in baseElements)
            {
                Type type = baseElement.GetType();
                XpdlActivityFactoryAttribute factoryAttribute = type.GetCustomAttribute <XpdlActivityFactoryAttribute>();
                if (factoryAttribute != null)
                {
                    IActivityFactory factory  = factoryAttribute.Factory;
                    Activity         activity = factory.CreateActivity(baseElement);
                    activities.Activity[counter] = activity;
                    counter++;
                }
                else
                {
                    activities.Activity[counter] = new Activity()
                    {
                        Name = type.Name
                    };
                }
            }
            return(activities);
        }
コード例 #2
0
        public void OnPerforming(PerformingContext filterContext)
        {
            string             correlationId      = filterContext.GetJobParameter <string>(CorrelationIdKey) ?? filterContext.BackgroundJob.Id;
            IActivity          activity           = _activityFactory.CreateActivity();
            CorrelationContext correlationContext = activity.Start(correlationId);

            if (correlationContext != null)
            {
                filterContext.Items[CorrelationIdKey]     = correlationContext.CorrelationId;
                filterContext.Items[CorrelateActivityKey] = activity;
            }
        }