public async Task <List <RoachMilestone> > GetMilestones(RoachRepoId repoId, RoachItemFilter filter = RoachItemFilter.All, CancellationToken cancellationToken = default(CancellationToken)) { var util = FilterUtil.PartitionKey(RoachMilestoneEntity.GetPartitionKey(repoId)); switch (filter) { case RoachItemFilter.All: // Nothing to do: break; case RoachItemFilter.Closed: util = util.And(FilterUtil.Column(nameof(RoachMilestoneEntity.IsOpen), false)); break; case RoachItemFilter.Open: util = util.And(FilterUtil.Column(nameof(RoachMilestoneEntity.IsOpen), true)); break; default: throw new Exception($"Bad enum value {filter}"); } var list = await AzureUtil.QueryAsync <RoachMilestoneEntity>( _milestoneTable, util, cancellationToken); return(list.Select(x => x.Milestone).OrderBy(x => x.Title).ToList()); }
private async Task <List <RoachIssueEntity> > GetIssuesInMilestone(RoachRepoId repoId, int milestone, CancellationToken cancellationToken) { var filter = FilterUtil .PartitionKey(RoachIssueEntity.GetPartitionKey(repoId)) .And(FilterUtil.Column(nameof(RoachIssueEntity.MilestoneNumber), milestone)); return(await AzureUtil.QueryAsync <RoachIssueEntity>(_issueTable, filter, cancellationToken)); }