コード例 #1
0
        /// <summary>
        /// Returns all job instances by iterating over each segment returned
        /// </summary>
        public async Task <List <JobInstance> > GetJobInstancesAsync(Guid jobId)
        {
            var query   = new TableQuery <JobInstance>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, jobId.ToString()));
            var segment = await JobInstancesTable.ExecuteQuerySegmentedAsync(query, null);

            var model = new List <JobInstance>();

            if (segment.Results != null)
            {
                model.AddRange(segment.Results.ToList());
            }

            while (segment.ContinuationToken != null)
            {
                segment = await JobInstanceDetailsTable.ExecuteQuerySegmentedAsync(query, segment.ContinuationToken);

                model.AddRange(segment.Results.ToList());
            }

            return(model);
        }
コード例 #2
0
        /// <summary>
        /// Returns all job instances for a given date. Instances will iterated over until all instances are returned
        /// </summary>
        public async Task <List <JobInstance> > GetJobInstancesAsync(Guid jobId, DateTime date)
        {
            var query   = new TableQuery <JobInstance>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, $"{jobId}-{date:yyyyMMdd}"));
            var segment = await JobInstancesTable.ExecuteQuerySegmentedAsync(query, null);

            var model = new List <JobInstance>();

            if (segment.Results != null && segment.Results.Count > 0)
            {
                model.AddRange(segment.Results);
            }

            while (segment.ContinuationToken != null)
            {
                segment = await JobInstanceDetailsTable.ExecuteQuerySegmentedAsync(query, segment.ContinuationToken);

                model.AddRange(segment.Results);
            }

            return(model);
        }