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); }
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()); }
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)); }
public PagedEnumerable(IPagedReader <T> reader) { this.Enumerator = new PagedEnumerator(reader); }
public PagedEnumerator(IPagedReader <T> reader) { this.Reader = reader; this.PageSize = 10; this.Reset(); }
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()); }