protected override void Initialize(IServiceProvider provider)
        {
            ThreadMonitor.WriteToConsole(Thread.CurrentThread, "WaitForMessageActivity", "WaitForMessageActivity: Processed Initialization");

            WorkflowQueuingService queuingService = (WorkflowQueuingService)provider.GetService(typeof(WorkflowQueuingService));
            this.workflowQueue = queuingService.CreateWorkflowQueue("WaitForMessageActivityQueue", false);
            this.workflowQueue.QueueItemAvailable += this.HandleExternalEvent;
        }
        internal static object DequeueMessage(IComparable queueId, WorkflowQueuingService queueSvcs, Activity activity, out WorkflowQueue queue)
        {
            object message = null;
            queue = queueSvcs.GetWorkflowQueue(queueId);

            if (queue.Count != 0)
            {
                message = queue.Dequeue();
                if (message == null)
                    throw new ArgumentException(SR.GetString(SR.Error_InvalidEventMessage, activity.QualifiedName));
            }
            return message;
        }
		// Methods
		public WorkflowQueue CreateWorkflowQueue (IComparable queueName, bool transactional)
		{
			WorkflowQueue queue;

			if (Exists (queueName)) {
				throw new InvalidOperationException ("A queue with this name already exists.");
			}

			queue = new WorkflowQueue (this, queueName);
			queues.Add (queueName, queue);

			//Console.WriteLine ("CreateWorkflowQueue {0}", queueName);
			return queue;
		}
 internal static object DequeueMessage(IComparable queueId, WorkflowQueuingService queueSvcs, Activity activity, out WorkflowQueue queue)
 {
     object obj2 = null;
     queue = queueSvcs.GetWorkflowQueue(queueId);
     if (queue.Count != 0)
     {
         obj2 = queue.Dequeue();
         if (obj2 == null)
         {
             throw new ArgumentException(SR.GetString("Error_InvalidEventMessage", new object[] { activity.QualifiedName }));
         }
     }
     return obj2;
 }
Example #5
0
        // Methods
        public WorkflowQueue CreateWorkflowQueue(IComparable queueName, bool transactional)
        {
            WorkflowQueue queue;

            if (Exists(queueName))
            {
                throw new InvalidOperationException("A queue with this name already exists.");
            }

            queue = new WorkflowQueue(this, queueName);
            queues.Add(queueName, queue);

            //Console.WriteLine ("CreateWorkflowQueue {0}", queueName);
            return(queue);
        }
Example #6
0
		protected override void Initialize (IServiceProvider provider)
		{
			Console.WriteLine ("***ourCodeActivity.Initialize thread:{0}",
				Thread.CurrentThread.ManagedThreadId);

            		WorkflowQueuingService queuingService = (WorkflowQueuingService)provider.GetService (typeof(WorkflowQueuingService));

            		IComparable queue_name = "LaNostra_Queue";
			WorkflowQueuingService qService = (WorkflowQueuingService) provider.GetService (typeof (WorkflowQueuingService));

		    	if (!qService.Exists (queue_name)) {
			        workflowQueue = qService.CreateWorkflowQueue (queue_name, true);
			}
			else
				workflowQueue = qService.GetWorkflowQueue (queue_name);

            		workflowQueue.QueueItemAvailable += OnQueueItemAvailable;
            		workflowQueue.QueueItemArrived += OnQueueItemArrived;
		}
        /// <summary>
        /// Deletes the workflow program queue.
        /// </summary>
        /// <param name="workflowQueuingService">The workflow queuing service.</param>
        /// <param name="queue">The queue name.</param>
        private static void DeleteWorkflowProgramQueue(WorkflowQueuingService workflowQueuingService, WorkflowQueue queue)
        {
            Logger.Instance.WriteMethodEntry(EventIdentifier.AsyncUpdateResourceDeleteWorkflowProgramQueue);

            try
            {
                if (workflowQueuingService.Exists(queue.QueueName))
                {
                    workflowQueuingService.DeleteWorkflowQueue(queue.QueueName);

                    Logger.Instance.WriteVerbose(EventIdentifier.AsyncUpdateResourceDeleteWorkflowProgramQueue, "AsynchronousUpdateResource deleted workflow queue: '{0}'.", queue.QueueName);
                }
            }
            finally
            {
                Logger.Instance.WriteMethodExit(EventIdentifier.AsyncUpdateResourceDeleteWorkflowProgramQueue);
            } 
        }
        internal static void UninitializeFollowers(Type interfaceType, string initializer, WorkflowQueue initializerQueue)
        {
            if (!CorrelationResolver.IsInitializingMember(interfaceType, initializer, null))
                return;

            EventInfo[] events = interfaceType.GetEvents();
            foreach (EventInfo e in events)
            {
                string follower = e.Name;
                if (!CorrelationResolver.IsInitializingMember(interfaceType, e.Name, null))
                    initializerQueue.UnregisterForQueueItemArrived(new FollowerQueueCreator(follower));
            }
        }
 internal static void UninitializeFollowers(Type interfaceType, string initializer, WorkflowQueue initializerQueue)
 {
     if (CorrelationResolver.IsInitializingMember(interfaceType, initializer, null))
     {
         foreach (EventInfo info in interfaceType.GetEvents())
         {
             string name = info.Name;
             if (!CorrelationResolver.IsInitializingMember(interfaceType, info.Name, null))
             {
                 initializerQueue.UnregisterForQueueItemArrived(new FollowerQueueCreator(name));
             }
         }
     }
 }