Exemple #1
0
        private IQueryable <Microsoft.WindowsAzure.DevelopmentStorage.Store.QueueContainer> MakeListQueueContainersQuery(string containerNamePrefix, string separator, string containerNameStart, IContainerCondition condition, int maxQueueNames, DevelopmentStorageDbDataContext dataContext)
        {
            IQueryable <Microsoft.WindowsAzure.DevelopmentStorage.Store.QueueContainer> queueContainers =
                from c in dataContext.QueueContainers
                where c.AccountName == this._account.Name
                select c;

            if (!string.IsNullOrEmpty(separator))
            {
                queueContainers =
                    from c in dataContext.GetSummaryQueueContainers(this._account.Name, containerNamePrefix, separator)
                    select c;
            }
            else if (!string.IsNullOrEmpty(containerNamePrefix))
            {
                queueContainers =
                    from c in queueContainers
                    where c.QueueName.StartsWith(DbStorageAccount.FixTildeInPrefix(containerNamePrefix))
                    select c;
            }
            if (!string.IsNullOrEmpty(containerNameStart))
            {
                queueContainers =
                    from c in queueContainers
                    where c.QueueName.CompareTo(containerNameStart) >= 0
                    select c;
            }
            if (condition != null)
            {
                if (condition.IfModifiedSinceTime.HasValue)
                {
                    queueContainers =
                        from c in queueContainers
                        where c.LastModificationTime > condition.IfModifiedSinceTime.Value
                        select c;
                }
                if (condition.IfNotModifiedSinceTime.HasValue)
                {
                    queueContainers =
                        from c in queueContainers
                        where c.LastModificationTime <= condition.IfNotModifiedSinceTime.Value
                        select c;
                }
            }
            if (maxQueueNames != 0)
            {
                queueContainers = queueContainers.Take <Microsoft.WindowsAzure.DevelopmentStorage.Store.QueueContainer>(maxQueueNames + 1);
            }
            return(queueContainers);
        }