예제 #1
0
        /// <summary>
        /// For unit testing
        /// </summary>
        /// <param name="queueName"></param>
        public QueueManager(string queueName, IStorageAccount storageAccount)
        {
            if (string.IsNullOrWhiteSpace(queueName))
            {
                throw new ArgumentNullException(nameof(queueName));
            }
            if (storageAccount == null)
            {
                throw new ArgumentNullException(nameof(storageAccount));
            }

            _storageAccount = storageAccount;
            _queueName      = queueName;
            _queue          = storageAccount.CreateCloudQueueClient().GetQueueReference(queueName);
            _blobContainer  = storageAccount.CreateCloudBlobClient().GetContainerReference("oversizedqueuemessages");

            var tasks = new List <Task>();

            tasks.Add(_queue.CreateIfNotExistsAsync(null, null, CancellationToken.None));
            tasks.Add(_blobContainer.CreateIfNotExistsAsync(BlobContainerPublicAccessType.Off, null, null, CancellationToken.None));
            Task.WaitAll(tasks.ToArray());
        }