Exemplo n.º 1
0
        /// <summary>
        /// remove an azure queue
        /// </summary>
        /// <param name="name">queue name</param>
        /// <returns>
        /// true if the queue is removed successfully, false if user cancel the remove operation,
        /// otherwise throw an exception
        /// </returns>
        internal bool RemoveAzureQueue(string name)
        {
            if (!NameUtil.IsValidQueueName(name))
            {
                throw new ArgumentException(String.Format(Resources.InvalidQueueName, name));
            }

            QueueRequestOptions requestOptions = null;
            CloudQueue          queue          = Channel.GetQueueReference(name);

            if (!Channel.DoesQueueExist(queue, requestOptions, OperationContext))
            {
                throw new ResourceNotFoundException(String.Format(Resources.QueueNotFound, name));
            }

            if (force || ConfirmRemove(name))
            {
                Channel.DeleteQueue(queue, requestOptions, OperationContext);
                return(true);
            }
            else
            {
                return(false);
            }
        }
        /// <summary>
        /// list azure queues by name
        /// </summary>
        /// <param name="name">queue name</param>
        /// <returns>An enumerable collection of CloudQueue objects</returns>
        internal IEnumerable <CloudQueue> ListQueuesByName(string name)
        {
            string prefix = String.Empty;
            QueueListingDetails queueListingDetails = QueueListingDetails.All;
            QueueRequestOptions requestOptions      = RequestOptions;

            if (String.IsNullOrEmpty(name) || WildcardPattern.ContainsWildcardCharacters(name))
            {
                IEnumerable <CloudQueue> queues = Channel.ListQueues(prefix, queueListingDetails, requestOptions, OperationContext);

                WildcardOptions options  = WildcardOptions.IgnoreCase | WildcardOptions.Compiled;
                WildcardPattern wildcard = null;

                if (!string.IsNullOrEmpty(name))
                {
                    wildcard = new WildcardPattern(name, options);
                }

                foreach (CloudQueue queue in queues)
                {
                    if (wildcard == null || wildcard.IsMatch(queue.Name))
                    {
                        yield return(queue);
                    }
                }
            }
            else
            {
                if (!NameUtil.IsValidQueueName(name))
                {
                    throw new ArgumentException(String.Format(Resources.InvalidQueueName, name));
                }

                CloudQueue queue = Channel.GetQueueReference(name);

                if (Channel.DoesQueueExist(queue, requestOptions, OperationContext))
                {
                    yield return(queue);
                }
                else
                {
                    throw new ResourceNotFoundException(String.Format(Resources.QueueNotFound, name));
                }
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// create an azure queue
        /// </summary>
        /// <param name="name">queue name</param>
        /// <returns>an AzureStorageQueue object</returns>
        internal AzureStorageQueue CreateAzureQueue(string name)
        {
            if (!NameUtil.IsValidQueueName(name))
            {
                throw new ArgumentException(String.Format(Resources.InvalidQueueName, name));
            }

            QueueRequestOptions requestOptions = RequestOptions;
            CloudQueue          queue          = Channel.GetQueueReference(name);
            bool created = Channel.CreateQueueIfNotExists(queue, requestOptions, OperationContext);

            if (!created)
            {
                throw new ResourceAlreadyExistException(String.Format(Resources.QueueAlreadyExists, name));
            }

            return(new AzureStorageQueue(queue));
        }