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); }
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; } }