public List <AsyncQueueStep> GetActiveAsyncQueueRequests(int partitionId, string processInstanceName, TimeSpan failoverWaitThreshold, AsyncQueuePriority?priority = null, bool haRequestOnly = false, int batchSize = 10) { if (partitionId >= this.PartitionCount) { throw new ArgumentOutOfRangeException(string.Format("Invalid Parition Id {0} passed. Valid partition values are 0 to {1}", partitionId, this.PartitionCount - 1)); } AsyncQueueSession.ValidateProcessInstanceName(processInstanceName); object propertyValue = this.GetAllPhysicalPartitions()[partitionId]; MultiValuedProperty <AsyncQueueOwnerInfo> propertyValue2 = new MultiValuedProperty <AsyncQueueOwnerInfo>(); QueryFilter queryFilter = QueryFilter.AndTogether(new QueryFilter[] { AsyncQueueSession.NewComparisonFilter(DalHelper.PhysicalInstanceKeyProp, propertyValue), AsyncQueueSession.NewComparisonFilter(AsyncQueueCommonSchema.ProcessInstanceNameProperty, processInstanceName), AsyncQueueSession.NewComparisonFilter(AsyncQueueCommonSchema.OwnerListQueryProperty, propertyValue2), AsyncQueueSession.NewComparisonFilter(AsyncQueueCommonSchema.BatchSizeQueryProperty, batchSize), AsyncQueueSession.NewComparisonFilter(AsyncQueueCommonSchema.FailoverWaitInSecondsQueryProperty, failoverWaitThreshold.TotalSeconds) }); if (haRequestOnly) { AsyncQueueFlags asyncQueueFlags = AsyncQueueFlags.HARequest; queryFilter = QueryFilter.AndTogether(new QueryFilter[] { queryFilter, AsyncQueueSession.NewComparisonFilter(AsyncQueueCommonSchema.FlagsProperty, asyncQueueFlags) }); } if (priority != null) { queryFilter = QueryFilter.AndTogether(new QueryFilter[] { queryFilter, AsyncQueueSession.NewComparisonFilter(AsyncQueueCommonSchema.PriorityProperty, (byte)priority.Value) }); } return(this.dataProviderDirectory.Find <AsyncQueueStep>(queryFilter, null, true, null).Cast <AsyncQueueStep>().ToList <AsyncQueueStep>()); }
public AsyncQueueOwnerInfo(string ownerId, AsyncQueueFlags flags) { this.OwnerId = ownerId; this.Flags = flags; }