public TResult[] GetNextPage()
 {
     if (!this.valid)
     {
         throw new InvalidOperationException("GetNextPage() called after reader was marked invalid");
     }
     if (this.RetrievedAllData)
     {
         throw new InvalidOperationException(DirectoryStrings.ExceptionPagedReaderIsSingleUse);
     }
     TResult[] result;
     try
     {
         IPagedReader <TResult> pagedReader = this.readerQueue.Peek();
         TResult[] nextPage = pagedReader.GetNextPage();
         this.PagesReturned++;
         if (pagedReader.RetrievedAllData)
         {
             this.readerQueue.Dequeue();
             this.RetrievedAllData = (this.readerQueue.Count == 0);
         }
         result = nextPage;
     }
     catch (PermanentDALException)
     {
         this.valid            = false;
         this.RetrievedAllData = true;
         throw;
     }
     return(result);
 }
Example #2
0
        public TaskItem[] FindTasks(Guid roleId, Guid?ownerId = null, TaskExecutionStateType?taskExecutionState = null, SchedulingType?schedulingType = null, int?regionSelectionSet = null, Guid?scheduleId = null, Guid?taskId = null, TaskCompletionStatusType?taskCompletionStatus = null, IEnumerable <long> dataCenterIdCollection = null, Guid?jobId = null, Guid?activeJobId = null)
        {
            if (taskExecutionState == null)
            {
                IPagedReader <TaskItem> pagedReader = this.FindTasks(roleId, ownerId, null, null, schedulingType, regionSelectionSet, scheduleId, taskId, taskCompletionStatus, dataCenterIdCollection, 1000, jobId, activeJobId);
                return(pagedReader.ReadAllPages());
            }
            IPagedReader <TaskItem> pagedReader2 = this.FindTasks(roleId, ownerId, new TaskExecutionStateType[]
            {
                taskExecutionState.Value
            }, null, schedulingType, regionSelectionSet, scheduleId, taskId, taskCompletionStatus, dataCenterIdCollection, 1000, jobId, activeJobId);

            return(pagedReader2.ReadAllPages());
        }
Example #3
0
 private IPagedReader <T> GetPagedReader <T>(QueryFilter queryFilter, int pageSize, bool queryAllPartition) where T : IConfigurable, new()
 {
     if (!queryAllPartition)
     {
         return(new ConfigDataProviderPagedReader <T>(this.dataProvider, null, queryFilter, null, pageSize));
     }
     object[]           allPhysicalPartitions = ((IPartitionedDataProvider)this.dataProvider).GetAllPhysicalPartitions();
     IPagedReader <T>[] array = new IPagedReader <T> [allPhysicalPartitions.Length];
     for (int i = 0; i < allPhysicalPartitions.Length; i++)
     {
         array[i] = new ConfigDataProviderPagedReader <T>(this.dataProvider, null, QueryFilter.AndTogether(new QueryFilter[]
         {
             new ComparisonFilter(ComparisonOperator.Equal, DalHelper.PhysicalInstanceKeyProp, allPhysicalPartitions[i]),
             queryFilter
         }), null, pageSize);
     }
     return(new CompositePagedReader <T>(array));
 }
Example #4
0
 public PagedEnumerable(IPagedReader <T> reader)
 {
     this.Enumerator = new PagedEnumerator(reader);
 }
Example #5
0
 public PagedEnumerator(IPagedReader <T> reader)
 {
     this.Reader   = reader;
     this.PageSize = 10;
     this.Reset();
 }
Example #6
0
        public TaskItem[] FindTasks(Guid roleId, Guid?ownerId, IEnumerable <TaskExecutionStateType> taskExecutionStates, IEnumerable <TaskExecutionStateType> taskExecutionExclusionStates, SchedulingType?schedulingType, int?regionSelectionSet, Guid?scheduleId, Guid?taskId, TaskCompletionStatusType?taskCompletionStatus, IEnumerable <long> dataCenterIdCollection, Guid?jobId = null, Guid?activeJobId = null)
        {
            IPagedReader <TaskItem> pagedReader = this.FindTasks(roleId, ownerId, taskExecutionStates, taskExecutionExclusionStates, schedulingType, regionSelectionSet, scheduleId, taskId, taskCompletionStatus, dataCenterIdCollection, 1000, jobId, activeJobId);

            return(pagedReader.ReadAllPages());
        }