Example #1
0
        private static void CreateFollowerEntry(IServiceProvider context, Type interfaceType, string followermethodName, string initializermethodName)
        {
            if (!CorrelationResolver.IsInitializingMember(interfaceType, initializermethodName, null))
            {
                return;
            }

            WorkflowQueuingService queueSvcs = (WorkflowQueuingService)context.GetService(typeof(WorkflowQueuingService));
            FollowerQueueCreator   follower  = new FollowerQueueCreator(followermethodName);

            WorkflowActivityTrace.Activity.TraceEvent(TraceEventType.Information, 0, "Creating follower {0} on initializer {1}", interfaceType.Name + followermethodName, interfaceType.Name + initializermethodName);

            ICollection <CorrelationProperty> corrValues = CorrelationResolver.ResolveCorrelationValues(interfaceType, initializermethodName, null, true);
            EventQueueName key = new EventQueueName(interfaceType, initializermethodName, corrValues);
            WorkflowQueue  initializerQueue = null;

            if (queueSvcs.Exists(key))
            {
                initializerQueue = queueSvcs.GetWorkflowQueue(key);
            }
            else
            {
                // traversed follower before initializer
                initializerQueue         = queueSvcs.CreateWorkflowQueue(key, true);
                initializerQueue.Enabled = false;
            }

            initializerQueue.RegisterForQueueItemArrived(follower);
        }
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }
            FollowerQueueCreator creator = obj as FollowerQueueCreator;

            return(this.followerOperation == creator.followerOperation);
        }
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }
            FollowerQueueCreator equalsObject = obj as FollowerQueueCreator;

            if (this.followerOperation == equalsObject.followerOperation)
            {
                return(true);
            }
            return(false);
        }
 private static void CreateFollowerEntry(IServiceProvider context, Type interfaceType, string followermethodName, string initializermethodName)
 {
     if (CorrelationResolver.IsInitializingMember(interfaceType, initializermethodName, null))
     {
         WorkflowQueuingService service       = (WorkflowQueuingService)context.GetService(typeof(WorkflowQueuingService));
         FollowerQueueCreator   eventListener = new FollowerQueueCreator(followermethodName);
         WorkflowActivityTrace.Activity.TraceEvent(TraceEventType.Information, 0, "Creating follower {0} on initializer {1}", new object[] { interfaceType.Name + followermethodName, interfaceType.Name + initializermethodName });
         ICollection <CorrelationProperty> propertyValues = CorrelationResolver.ResolveCorrelationValues(interfaceType, initializermethodName, null, true);
         EventQueueName queueName     = new EventQueueName(interfaceType, initializermethodName, propertyValues);
         WorkflowQueue  workflowQueue = null;
         if (service.Exists(queueName))
         {
             workflowQueue = service.GetWorkflowQueue(queueName);
         }
         else
         {
             workflowQueue         = service.CreateWorkflowQueue(queueName, true);
             workflowQueue.Enabled = false;
         }
         workflowQueue.RegisterForQueueItemArrived(eventListener);
     }
 }