Пример #1
0
        /// <summary>
        /// Delete all the service bus queues
        /// </summary>
        /// <param name="serviceBusConnectionString">connection string to service bus</param>
        /// <returns>delete task</returns>
        private static async Task DeleteServiceBusQueues(string serviceBusConnectionString)
        {
            // Delete service bus queues.
            // TODO: Investigate the delete function for service bus queue. We've had problems with it in the past.
            Console.WriteLine("Deleting service bus queues...");
            foreach (QueueIdentifier queueIdentifier in Enum.GetValues(typeof(QueueIdentifier)))
            {
                if (!QueueDescriptorProvider.Queues.ContainsKey(queueIdentifier))
                {
                    Console.WriteLine("  " + queueIdentifier.ToString() + " - Descriptor not found");
                    continue;
                }

                QueueDescriptor queueDescriptor = QueueDescriptorProvider.Queues[queueIdentifier];
                ServiceBus      serviceBus      = new ServiceBus(serviceBusConnectionString);
                await serviceBus.DeleteQueueAsync(queueDescriptor.QueueName);

                Console.WriteLine("  " + queueIdentifier.ToString() + " - Queue Deleted");
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            var settings = ServiceBusSettings.Create();

            settings.ServiceBusSubscriptionNamePrefix = DateTime.Now.ToString("hhmmss");

            var nsManager = new NamespaceManagerBuilder();

#if USE_MESSAGING_FACTORY
            var factoryBuilder = new MessagingFactoryBuilder();
#endif

            var serviceBus = new ServiceBus(settings, nsManager
#if USE_MESSAGING_FACTORY
                                            , factoryBuilder
#endif
                                            );

            Logger = new Logger();
            var activator = new HandlerActivator();

            var busBuilder = new ServiceBusWithHandlersBuilder(serviceBus, activator, Logger);

            Logger.Information("Main", "Building bus");
            busBuilder.CreateServiceBus()
            .WithEventHandlers(new List <Type>()
            {
                typeof(TestEventHandler), typeof(SecondTestEventHandler)
            });
            var task = busBuilder.BuildAsync();
            task.Wait();
            var bus = task.Result;

            Logger.Information("Main", "Ready. Press 'p' to publish an event. Press 'q' to quit.");

            while (true)
            {
                var key = Console.ReadKey(true);
                if (key.KeyChar == 'q')
                {
                    break;
                }
                if (key.KeyChar == 'p')
                {
                    var testContent = Guid.NewGuid().ToString();

                    Logger.Information("Main", "Publishing event for {0}", testContent);
                    bus.PublishAsync(new TestEvent()
                    {
                        Content = testContent
                    }).Wait();
                    Logger.Information("Main", "Published");
                }

                Thread.Sleep(100);
            }

            Logger.Information("Main", "Cleanup");
            var cleanupTask = serviceBus.DeleteTopicAsync(typeof(TestEvent).FullName);
            cleanupTask.Wait();
            cleanupTask = serviceBus.DeleteQueueAsync(typeof(TestEvent).FullName);
            cleanupTask.Wait();
        }