Exemple #1
0
        public static async Task Stage(string connectionString, string destination)
        {
            var client = new ServiceBusAdministrationClient(connectionString);

            if (await client.QueueExistsAsync(destination))
            {
                await client.DeleteQueueAsync(destination);
            }

            var queueDescription = new CreateQueueOptions(destination)
            {
                RequiresDuplicateDetection          = true,
                DuplicateDetectionHistoryTimeWindow = TimeSpan.FromSeconds(20)
            };
            await client.CreateQueueAsync(queueDescription);
        }
Exemple #2
0
        public static async Task Stage(string connectionString, string destination)
        {
            var client = new ServiceBusAdministrationClient(connectionString);

            if (await client.QueueExistsAsync(destination))
            {
                await client.DeleteQueueAsync(destination);
            }

            var description = new CreateQueueOptions(destination)
            {
                DeadLetteringOnMessageExpiration = true, // default false
                MaxDeliveryCount = 1
            };
            await client.CreateQueueAsync(description);
        }
        private void Initialise()
        {
            s_logger.LogDebug("Initialising new management client wrapper...");

            try
            {
                _administrationClient = _clientProvider.GetServiceBusAdministrationClient();
            }
            catch (Exception e)
            {
                s_logger.LogError(e, "Failed to initialise new management client wrapper.");
                throw;
            }

            s_logger.LogDebug("New management client wrapper initialised.");
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="serviceScopeFactory"></param>
        /// <param name="busOptionsAccessor"></param>
        /// <param name="transportOptionsAccessor"></param>
        /// <param name="loggerFactory"></param>
        public AzureServiceBusTransport(IServiceScopeFactory serviceScopeFactory,
                                        IOptions <EventBusOptions> busOptionsAccessor,
                                        IOptions <AzureServiceBusTransportOptions> transportOptionsAccessor,
                                        ILoggerFactory loggerFactory)
            : base(serviceScopeFactory, busOptionsAccessor, transportOptionsAccessor, loggerFactory)
        {
            var connectionString = TransportOptions.ConnectionString;

            managementClient = new ServiceBusAdministrationClient(connectionString);

            var sbcOptions = new ServiceBusClientOptions {
                TransportType = TransportOptions.TransportType,
            };

            serviceBusClient = new ServiceBusClient(connectionString, sbcOptions);
        }
Exemple #5
0
 public AzureServiceBusEventBus(EventBusConfiguration eventBusConfiguration,
                                IServiceProvider serviceProvider,
                                IEventBusSubscriptionsManager subscriptionManager,
                                ILogger <AzureServiceBusEventBus> logger,
                                ServiceBusSender serviceBusSender,
                                ServiceBusProcessor serviceBusReceiver,
                                ServiceBusAdministrationClient serviceBusAdministrationClient)
 {
     _eventBusConfiguration = eventBusConfiguration ?? throw new ArgumentNullException(nameof(eventBusConfiguration));
     _serviceProvider       = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
     _subscriptionManager   = subscriptionManager ?? throw new ArgumentNullException(nameof(subscriptionManager));
     _logger                         = logger ?? throw new ArgumentNullException(nameof(logger));
     _serviceBusSender               = serviceBusSender ?? throw new ArgumentNullException(nameof(serviceBusSender));
     _serviceBusReceiver             = serviceBusReceiver ?? throw new ArgumentNullException(nameof(serviceBusReceiver));
     _serviceBusAdministrationClient = serviceBusAdministrationClient
                                       ?? throw new ArgumentNullException(nameof(serviceBusAdministrationClient));
 }
Exemple #6
0
        public async Task CreateQueue()
        {
#if !SNIPPET
            string queueName        = Guid.NewGuid().ToString("D").Substring(0, 8);
            string connectionString = TestEnvironment.ServiceBusConnectionString;
#endif
            try
            {
                #region Snippet:CreateQueue
#if SNIPPET
                string connectionString = "<connection_string>";
                string queueName        = "<queue_name>";
#endif
                var client  = new ServiceBusAdministrationClient(connectionString);
                var options = new CreateQueueOptions(queueName)
                {
                    AutoDeleteOnIdle                    = TimeSpan.FromDays(7),
                    DefaultMessageTimeToLive            = TimeSpan.FromDays(2),
                    DuplicateDetectionHistoryTimeWindow = TimeSpan.FromMinutes(1),
                    EnableBatchedOperations             = true,
                    DeadLetteringOnMessageExpiration    = true,
                    EnablePartitioning                  = false,
                    ForwardDeadLetteredMessagesTo       = null,
                    ForwardTo                  = null,
                    LockDuration               = TimeSpan.FromSeconds(45),
                    MaxDeliveryCount           = 8,
                    MaxSizeInMegabytes         = 2048,
                    RequiresDuplicateDetection = true,
                    RequiresSession            = true,
                    UserMetadata               = "some metadata"
                };

                options.AuthorizationRules.Add(new SharedAccessAuthorizationRule(
                                                   "allClaims",
                                                   new[] { AccessRights.Manage, AccessRights.Send, AccessRights.Listen }));

                QueueProperties createdQueue = await client.CreateQueueAsync(options);

                #endregion
                Assert.AreEqual(options, new CreateQueueOptions(createdQueue));
            }
            finally
            {
                await new ServiceBusAdministrationClient(connectionString).DeleteQueueAsync(queueName);
            }
        }
Exemple #7
0
        public static Task Create(ServiceBusAdministrationClient client, CommandArgument endpointName, CommandOption topicName, CommandOption subscriptionName)
        {
            var topicNameToUse        = topicName.HasValue() ? topicName.Value() : Topic.DefaultTopicName;
            var subscriptionNameToUse = subscriptionName.HasValue() ? subscriptionName.Value() : endpointName.Value;

            var options = new CreateSubscriptionOptions(topicNameToUse, subscriptionNameToUse)
            {
                LockDuration = TimeSpan.FromMinutes(5),
                ForwardTo    = endpointName.Value,
                EnableDeadLetteringOnFilterEvaluationExceptions = false,
                MaxDeliveryCount        = int.MaxValue,
                EnableBatchedOperations = true,
                UserMetadata            = endpointName.Value
            };

            return(client.CreateSubscriptionAsync(options, new CreateRuleOptions("$default", new FalseRuleFilter())));
        }
Exemple #8
0
        private void CreateTopicAndSubscriptions(string topicName, string[] subscriptions)
        {
            var busAdmin = new ServiceBusAdministrationClient(Connections.ServiceBusConnectionString);

            if (!busAdmin.TopicExistsAsync(topicName).Result.Value)
            {
                busAdmin.CreateTopicAsync(topicName).Wait();
            }

            foreach (var subscription in subscriptions)
            {
                if (!busAdmin.SubscriptionExistsAsync(topicName, subscription).Result.Value)
                {
                    busAdmin.CreateSubscriptionAsync(topicName, subscription).Wait();
                }
            }
        }
Exemple #9
0
        private static async Task SendRequestMessageWithResponse()
        {
            const string requestQueue  = "sbq-request-queue";
            const string responseQueue = "sbq-response-queue";

            var managementClient = new ServiceBusAdministrationClient(Config.Namespace, Config.Credential);

            if (!await managementClient.QueueExistsAsync(requestQueue))
            {
                await managementClient.CreateQueueAsync(requestQueue);
            }

            if (!await managementClient.QueueExistsAsync(responseQueue))
            {
                var createQueueOptions = new CreateQueueOptions(responseQueue)
                {
                    RequiresSession = true
                };

                await managementClient.CreateQueueAsync(createQueueOptions);
            }

            var responseSessionId = Guid.NewGuid().ToString();

            await using var requestClient = new ServiceBusClient(Config.Namespace, Config.Credential);

            var sender = requestClient.CreateSender(requestQueue);

            var message = new ServiceBusMessage(Encoding.UTF8.GetBytes("This is a simple test message"))
            {
                ReplyToSessionId = responseSessionId
            };

            Console.WriteLine("Press any key to send a message. Press Enter to exit.");

            await using var responseClient = new ServiceBusClient(Config.Namespace, Config.Credential);

            var serviceBusSessionProcessorOptions = new ServiceBusSessionProcessorOptions();

            serviceBusSessionProcessorOptions.SessionIds.Add(responseSessionId);

            var sessionProcessor = responseClient.CreateSessionProcessor(responseQueue, serviceBusSessionProcessorOptions);

            sessionProcessor.ProcessMessageAsync += MessageHandler;
            sessionProcessor.ProcessErrorAsync   += ErrorHandler;
        async Task <long> GetMessageCount(bool deadLetterQueueData)
        {
            var client = new ServiceBusAdministrationClient(serviceBusHelper.ConnectionString);

            if (deadLetterQueueData)
            {
                if (queueProperties != null)
                {
                    var runtimeInfoResponse = await client.GetQueueRuntimePropertiesAsync(queueProperties.Name)
                                              .ConfigureAwait(false);

                    return(runtimeInfoResponse.Value.DeadLetterMessageCount);
                }
                else
                {
                    var runtimeInfoResponse = await client.GetSubscriptionRuntimePropertiesAsync(
                        subscriptionProperties.TopicName,
                        subscriptionProperties.SubscriptionName)
                                              .ConfigureAwait(false);

                    return(runtimeInfoResponse.Value.DeadLetterMessageCount);
                }
            }
            else
            {
                if (queueProperties != null)
                {
                    var runtimeInfo = await client.GetQueueRuntimePropertiesAsync(queueProperties.Name)
                                      .ConfigureAwait(false);

                    return(runtimeInfo.Value.ActiveMessageCount);
                }
                else
                {
                    var runtimeInfo = await client.GetSubscriptionRuntimePropertiesAsync(
                        subscriptionProperties.TopicName,
                        subscriptionProperties.SubscriptionName)
                                      .ConfigureAwait(false);

                    return(runtimeInfo.Value.ActiveMessageCount);
                }
            }
        }
Exemple #11
0
        public static async Task <TopicProperties> CreateTopicAsync(string topicName, string connectionString)
        {
            var client       = new ServiceBusAdministrationClient(connectionString);
            var topicOptions = new CreateTopicOptions(topicName)
            {
                DefaultMessageTimeToLive            = TimeSpan.FromDays(2),
                DuplicateDetectionHistoryTimeWindow = TimeSpan.FromMinutes(1),
                EnableBatchedOperations             = true,
                EnablePartitioning = false,
                MaxSizeInMegabytes = 2048,
                UserMetadata       = "some metadata"
            };

            topicOptions.AuthorizationRules.Add(new SharedAccessAuthorizationRule(
                                                    "allClaims",
                                                    new[] { AccessRights.Manage, AccessRights.Send, AccessRights.Listen }));

            return(await client.CreateTopicAsync(topicOptions));
        }
        protected async override Task <long> GetMessageCount(QueueProperties entity, bool deadLetterQueueData)
        {
            var client = new ServiceBusAdministrationClient(serviceBusHelper.ConnectionString);

            if (deadLetterQueueData)
            {
                var runtimeInfoResponse = await client.GetQueueRuntimePropertiesAsync(entity.Name)
                                          .ConfigureAwait(false);

                return(runtimeInfoResponse.Value.DeadLetterMessageCount);
            }
            else
            {
                var runtimeInfo = await client.GetQueueRuntimePropertiesAsync(entity.Name)
                                  .ConfigureAwait(false);

                return(runtimeInfo.Value.ActiveMessageCount);
            }
        }
        public static async Task ReportNumberOfMessages(string connectionString, string destination)
        {
            var client = new ServiceBusAdministrationClient(connectionString);

            QueueRuntimeProperties info = await client.GetQueueRuntimePropertiesAsync(destination);

            long activeMessageCount             = info.ActiveMessageCount;
            long deadLetterMessageCount         = info.DeadLetterMessageCount;
            long transferDeadLetterMessageCount = info.TransferDeadLetterMessageCount;

            string destinationDeadLetterPath         = EntityNameHelper.FormatDeadLetterPath(destination);
            string destinationTransferDeadLetterPath = EntityNameHelper.FormatTransferDeadLetterPath(destination);

            Console.WriteLine($"#'{activeMessageCount}' messages in '{destination}'");
            Console.WriteLine(
                $"#'{deadLetterMessageCount}' messages in '{destinationDeadLetterPath}'");
            Console.WriteLine(
                $"#'{transferDeadLetterMessageCount}' messages in '{destinationTransferDeadLetterPath}'");
        }
        public async Task StopAsync(CancellationToken cancellationToken)
        {
            var logs   = _host.GetTestLoggerProvider().GetAllLogMessages();
            var errors = logs.Where(
                p => p.Level == LogLevel.Error &&
                // Ignore this error that the SDK logs when cancelling batch receive
                !p.FormattedMessage.Contains("ReceiveBatchAsync Exception: System.Threading.Tasks.TaskCanceledException"));

            Assert.IsEmpty(errors, string.Join(",", errors.Select(e => e.FormattedMessage)));

            var client = new ServiceBusAdministrationClient(ServiceBusTestEnvironment.Instance.ServiceBusConnectionString);

            // wait for a few seconds to allow updated counts to propagate
            await Task.Delay(TimeSpan.FromSeconds(2));

            QueueRuntimeProperties properties = await client.GetQueueRuntimePropertiesAsync(WebJobsServiceBusTestBase._firstQueueScope.QueueName, CancellationToken.None);

            Assert.AreEqual(0, properties.TotalMessageCount);
        }
        public async Task SetupAsync(IHost host)
        {
            using var scope = host.Services.CreateScope();

            var referenceFactory = scope.ServiceProvider.GetRequiredService <IQueueReferenceFactory>();
            var policy           = referenceFactory.Create <TM>();

            var azureConfig = scope.ServiceProvider.GetRequiredService <AzureServiceBusConfiguration>();
            var adminClient = new ServiceBusAdministrationClient(azureConfig.ConnectionString);

            if (!(await adminClient.TopicExistsAsync(policy.TopicName)))
            {
                await adminClient.CreateTopicAsync(policy.TopicName);
            }

            if (!(await adminClient.SubscriptionExistsAsync(policy.TopicName, policy.SubscriptionName)))
            {
                await adminClient.CreateSubscriptionAsync(policy.TopicName, policy.SubscriptionName);
            }
        }
        public ServiceBusQueue(string connectionString, string topicName, string subscription, ServiceBusReceiveMode receiveMode = ServiceBusReceiveMode.PeekLock, bool createQueueIfItDoesNotExist = true)
            : base(connectionString)
        {
            this.connectionString = connectionString;
            this.queueName        = topicName;
            this.topicName        = topicName;
            this.subscription     = subscription;
            this.receiveMode      = receiveMode;
            this.SubQueue         = SubQueue.None;
            busAdmin = new ServiceBusAdministrationClient(this.connectionString);

            if (createQueueIfItDoesNotExist && !busAdmin.TopicExistsAsync(topicName).Result.Value)
            {
                busAdmin.CreateTopicAsync(topicName).Wait();
            }

            if (createQueueIfItDoesNotExist && !string.IsNullOrEmpty(subscription) && !busAdmin.SubscriptionExistsAsync(topicName, subscription).Result.Value)
            {
                busAdmin.CreateSubscriptionAsync(topicName, subscription).Wait();
            }
        }
Exemple #17
0
        public static async Task CreateSubscription(string connectionString,
                                                    string topic,
                                                    string subscription,
                                                    string subscriptionFilter)
        {
            CheckIsNotNullOrWhitespace(nameof(subscriptionFilter), subscriptionFilter);

            Debug.WriteLine($"CHECK: {subscriptionFilter}");

            string filterClause = $"{SUBSCRIPTION_FILTER} IN ('{subscriptionFilter.ToLower()}')";

            var client = new ServiceBusAdministrationClient(connectionString);

            await CreateSubscription(client, topic, subscription);

            await client.DeleteRuleAsync(topic, subscription, CreateRuleOptions.DefaultRuleName);

            var rule = new SqlRuleFilter(filterClause);

            await client.CreateRuleAsync(topic, subscription, new CreateRuleOptions(SUBSCRIPTION_FILTER, rule));
        }
Exemple #18
0
        private static async Task SendComplexObjectMessage()
        {
            const string queueName = "sbq-complex-object-message";

            var managementClient = new ServiceBusAdministrationClient(Config.Namespace, Config.Credential);

            if (!await managementClient.QueueExistsAsync(queueName))
            {
                await managementClient.CreateQueueAsync(queueName);
            }

            await using var client = new ServiceBusClient(Config.Namespace, Config.Credential);

            var sender = client.CreateSender(queueName);

            var payment = new Payment
            {
                PaymentId     = Guid.NewGuid(),
                AccountNumber = "132456789",
                Amount        = 1337m,
                PaymentDate   = DateTime.Today.AddDays(1),
                Payee         = "Mr John Smith"
            };

            var message = new ServiceBusMessage(JsonSerializer.SerializeToUtf8Bytes(payment));

            Console.WriteLine("Press any key to send a message. Press Enter to exit.");

            while (Console.ReadKey(true).Key != ConsoleKey.Enter)
            {
                await sender.SendMessageAsync(message);

                Console.WriteLine($"Message Sent for {nameof(SendComplexObjectMessage)}");
            }

            Console.ReadLine();

            await managementClient.DeleteQueueAsync(queueName);
        }
Exemple #19
0
        private static async Task SendTextMessageWithProperties()
        {
            const string queueName = "sbq-text-message-with-properties";

            var managementClient = new ServiceBusAdministrationClient(Config.Namespace, Config.Credential);

            if (!await managementClient.QueueExistsAsync(queueName))
            {
                await managementClient.CreateQueueAsync(queueName);
            }

            await using var client = new ServiceBusClient(Config.Namespace, Config.Credential);

            var sender = client.CreateSender(queueName);

            var message = new ServiceBusMessage
            {
                Body                  = new BinaryData("This is a simple test message"),
                ContentType           = "text/plain",
                CorrelationId         = Guid.NewGuid().ToString(),
                MessageId             = Guid.NewGuid().ToString(),
                TimeToLive            = TimeSpan.FromMinutes(10),
                ScheduledEnqueueTime  = DateTime.UtcNow,
                ApplicationProperties = { { "custom-property", "Custom Value" } }
            };

            Console.WriteLine("Press any key to send a message. Press Enter to exit.");

            while (Console.ReadKey(true).Key != ConsoleKey.Enter)
            {
                await sender.SendMessageAsync(message);

                Console.WriteLine($"Message Sent for {nameof(SendTextMessageWithProperties)}");
            }

            Console.ReadLine();

            await managementClient.DeleteQueueAsync(queueName);
        }
        public static async Task CreateQueueFromOptionsAsync(ServiceBusOptions options, string queueName)
        {
            var adminClient = new ServiceBusAdministrationClient(options.ConnectionString);

            try
            {
                await adminClient.CreateQueueAsync(new CreateQueueOptions(queueName)
                {
                    EnablePartitioning       = true,
                    RequiresSession          = false,
                    EnableBatchedOperations  = true,
                    AutoDeleteOnIdle         = options.QueueTtl,
                    DefaultMessageTimeToLive = options.MessageTtl,
                    MaxSizeInMegabytes       = options.MaxQueueSizeMegabytes
                });
            }
            catch (ServiceBusException exception)
                when(exception.Reason == ServiceBusFailureReason.MessagingEntityAlreadyExists)
                {
                    // Ignore
                }
        }
Exemple #21
0
        public MessageBusTestsBase()
        {
            var options = new ServiceBusClientOptions
            {
                RetryOptions = new()
                {
                    MaxRetries = 10,
                    Mode       = ServiceBusRetryMode.Exponential,
                    MaxDelay   = TimeSpan.FromSeconds(10)
                }
            };

            _serviceBusClient      = new ServiceBusClient(Configuration["ConnectionString"], options);
            _serviceBusAdminClient = new ServiceBusAdministrationClient(Configuration["ConnectionString"]);
            _tenantId         = Configuration["TenantId"];
            _topic            = Configuration["Topic"];
            _hostname         = Configuration["Hostname"];
            _connectionString = Configuration["ConnectionString"];
            _serviceBusSender = _serviceBusClient.CreateSender(_topic);
            var serviceBusAdminClient = new ServiceBusAdministrationClient(_connectionString);

            serviceBusAdminClient.CreateSubscriptionAsync(new(_topic, _subscription));
        }
        public async Task <Dictionary <string, QueueDetail> > GetAllQueueDetails()
        {
            var dict = new Dictionary <string, QueueDetail>();
            var administrationClient    = new ServiceBusAdministrationClient(connectionString);
            var queuesRuntimeProperties = administrationClient.GetQueuesRuntimePropertiesAsync().AsPages();

            await foreach (var queuePage in queuesRuntimeProperties)
            {
                foreach (QueueRuntimeProperties currentQueue in queuePage.Values)
                {
                    dict.Add(
                        currentQueue.Name,
                        new QueueDetail
                    {
                        ActiveMessageCount     = currentQueue.ActiveMessageCount,
                        TotalMessageCount      = currentQueue.TotalMessageCount,
                        DeadLetterMessageCount = currentQueue.DeadLetterMessageCount,
                    });
                }
            }

            return(dict);
        }
Exemple #23
0
        private async Task RemoveDefaultFilters()
        {
            Console.WriteLine($"Starting to remove default filters.");

            try
            {
                var client = new ServiceBusAdministrationClient(ServiceBusConnectionString);
                foreach (var subscription in Subscriptions)
                {
                    await client.DeleteRuleAsync(TopicName, subscription, CreateRuleOptions.DefaultRuleName);

                    Console.WriteLine($"Default filter for {subscription} has been removed.");
                }

                Console.WriteLine("All default Rules have been removed.\n");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }

            await PresentMenu();
        }
        public async Task SetupAsync(IHost host)
        {
            using var scope = host.Services.CreateScope();

            var referenceFactory = scope.ServiceProvider.GetRequiredService <IQueueReferenceFactory>();
            var policy           = referenceFactory.Create <TM>();

            var azureConfig = scope.ServiceProvider.GetRequiredService <AzureServiceBusConfiguration>();
            var adminClient = new ServiceBusAdministrationClient(azureConfig.ConnectionString);

            try
            {
                if (!await adminClient.TopicExistsAsync(policy.TopicName))
                {
                    await adminClient.CreateTopicAsync(new CreateTopicOptions(policy.TopicName)
                    {
                        RequiresDuplicateDetection = true
                    });
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            try
            {
                if (!await adminClient.SubscriptionExistsAsync(policy.TopicName, policy.SubscriptionName))
                {
                    await adminClient.CreateSubscriptionAsync(policy.TopicName, policy.SubscriptionName);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        public async Task <HealthCheckResult> CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = default)
        {
            try
            {
                var connectionKey = $"{_connectionString}_{_topicName}_{_subscriptionName}";
                if (!_managementClientConnections.TryGetValue(connectionKey, out var managementClient))
                {
                    managementClient = new ServiceBusAdministrationClient(_connectionString);
                    if (!_managementClientConnections.TryAdd(connectionKey, managementClient))
                    {
                        return(new HealthCheckResult(context.Registration.FailureStatus, description:
                                                     "New service bus administration client connection can't be added into dictionary."));
                    }
                }

                _ = await managementClient.GetSubscriptionRuntimePropertiesAsync(_topicName, _subscriptionName, cancellationToken);

                return(HealthCheckResult.Healthy());
            }
            catch (Exception ex)
            {
                return(new HealthCheckResult(context.Registration.FailureStatus, exception: ex));
            }
        }
Exemple #26
0
        private async Task CleanUpCustomFilters()
        {
            foreach (var subscription in Subscriptions)
            {
                try
                {
                    var client = new ServiceBusAdministrationClient(ServiceBusConnectionString);
                    IAsyncEnumerator <RuleProperties> rules = client.GetRulesAsync(TopicName, subscription).GetAsyncEnumerator();
                    while (await rules.MoveNextAsync())
                    {
                        await client.DeleteRuleAsync(TopicName, subscription, rules.Current.Name);

                        Console.WriteLine($"Rule {rules.Current.Name} has been removed.");
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }
            Console.WriteLine("All default filters have been removed.\n");

            await PresentMenu();
        }
Exemple #27
0
 static async Task LeaveStage(string connectionString, string destination)
 {
     var client = new ServiceBusAdministrationClient(connectionString);
     await client.DeleteQueueAsync(destination);
 }
        public ServiceBusAdministrationClient CreateAdminstrativeConnection()
        {
            ServiceBusAdministrationClient serviceBusAdministrationClient = new ServiceBusAdministrationClient(azureOptions.Value.ConnectionString);

            return(serviceBusAdministrationClient);
        }
 public async Task DisposeAsync()
 {
     var adminClient = new ServiceBusAdministrationClient(_sbFixture.Configuration.ConnectionString);
     await adminClient.DeleteTopicAsync(_topicName);
 }
        public static async Task <QueueScope> CreateWithQueue(ServiceBusAdministrationClient adminClient, CreateQueueOptions options)
        {
            var response = await adminClient.CreateQueueAsync(options).ConfigureAwait(false);

            return(new QueueScope(adminClient, options.Name, response.Value));
        }