/// <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); }
/// <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); }