/// <summary>
        /// Delete a queue
        /// </summary>
        /// <param name="bus">The bus instance</param>
        /// <param name="queue">The queue to delete</param>
        /// <param name="ifUnused">Only delete if unused</param>
        /// <param name="ifEmpty">Only delete if empty</param>
        /// <param name="cancellationToken">The cancellation token</param>
        public static void QueueDelete(this IAdvancedBus bus, IQueue queue, bool ifUnused = false, bool ifEmpty = false, CancellationToken cancellationToken = default)
        {
            Preconditions.CheckNotNull(bus, "bus");

            bus.QueueDeleteAsync(queue, ifUnused, ifEmpty, cancellationToken)
            .GetAwaiter()
            .GetResult();
        }