private void LstStartRelease_SelectedIndexChanged(object sender, EventArgs e) { if (_loading) { return; } lstEndRelease.DataSource = null; if (lstStartRelease.SelectedItem == null) { return; } ReleaseTag selectedRelease = lstStartRelease.SelectedItem as ReleaseTag; btnSelectedRelease.Enabled = (selectedRelease != null); if (selectedRelease == null) { return; } lstEndRelease.DisplayMember = "Name"; lstEndRelease.DataSource = _releaseTags.Where(r => r.Release >= selectedRelease.Release).OrderByDescending(r => r.Release).ToList(); lstEndRelease.SelectedIndex = -1; }
private async Task LoadSelectedReleaseNotesAsync() { IWorkItemRepository workItemRepository = _provider.GetRequiredService <IWorkItemRepository>(); ReleaseTag releaseTag = lstStartRelease.SelectedItem as ReleaseTag; IList <WorkItem> workItems = await workItemRepository.GetReleaseWorkItemsAsync(releaseTag); DisplayWorkItems(workItems); }
private async Task LoadSelectedRangeReleaseNotesAsync() { IWorkItemRepository workItemRepository = _provider.GetRequiredService <IWorkItemRepository>(); ReleaseTag @base = lstStartRelease.SelectedItem as ReleaseTag; ReleaseTag head = lstEndRelease.SelectedItem as ReleaseTag; IList <WorkItem> workItems = await workItemRepository.GetReleaseWorkItemsInRangeAsync(@base, head); DisplayWorkItems(workItems); }
protected virtual async Task <IList <WorkItem> > GetWorkItemsInReleaseAsync(GitHubClient client, long repositoryId, ReleaseTag releaseTag) { IList <WorkItem> workItems = new List <WorkItem>(); CompareResult commits = null; var advantageReleaseTags = await GetReleaseTagsAsync(repositoryId); var orderedReleaseTags = advantageReleaseTags. OrderByDescending(r => r.Release). ToList(); var selectedReleaseIndex = orderedReleaseTags.FindIndex(r => r.Release == releaseTag.Release); string baseSha = String.Empty; string headSha = String.Empty; Version releaseVersion = null; if (selectedReleaseIndex == -1) { // Not found return(workItems); } else if (selectedReleaseIndex == orderedReleaseTags.Count) { // Latest release //baseSha = orderedReleaseTags[selectedReleaseIndex-1].CommitSha; //headSha = orderedReleaseTags[selectedReleaseIndex].CommitSha; //releaseVersion = orderedReleaseTags[selectedReleaseIndex - 1].Release; } else { baseSha = orderedReleaseTags[selectedReleaseIndex].CommitSha; headSha = orderedReleaseTags[selectedReleaseIndex - 1].CommitSha; releaseVersion = orderedReleaseTags[selectedReleaseIndex].Release; } commits = await client.Repository.Commit.Compare ( repositoryId, baseSha, headSha ); foreach (GitHubCommit commit in commits.Commits) { workItems.Add(GetWorkItemFromGitHubCommit(commit, releaseVersion)); } //for (int i = 1; i < selectedReleaseTags.Count() - 1; i++) //{ // var selectedBase = selectedReleaseTags[i + 1]; // var selectedHead = selectedReleaseTags[i]; // commits = await client.Repository.Commit.Compare // ( // repositoryId, // selectedBase.CommitSha, // selectedHead.CommitSha // ); // foreach (GitHubCommit commit in commits.Commits) // { // workItems.Add(GetWorkItemFromGitHubCommit(commit, selectedHead.Release)); // } //} return(workItems); }
protected virtual async Task <IList <WorkItem> > GetWorkItemsInRangeAsync(GitHubClient client, long repositoryId, ReleaseTag @base, ReleaseTag head) { IList <WorkItem> workItems = new List <WorkItem>(); CompareResult commits = null; var advantageReleaseTags = await GetReleaseTagsAsync(repositoryId); var selectedReleaseTags = advantageReleaseTags. Where(r => r.Release >= @base.Release && r.Release <= head.Release && r.IsPatch == false). OrderByDescending(r => r.Release). ToList(); if (selectedReleaseTags.Count < 2) { return(workItems); } string baseSha = selectedReleaseTags[1].CommitSha; string headSha = selectedReleaseTags[0].CommitSha; commits = await client.Repository.Commit.Compare ( repositoryId, baseSha, headSha ); foreach (GitHubCommit commit in commits.Commits) { workItems.Add(GetWorkItemFromGitHubCommit(commit, selectedReleaseTags[0].Release)); } for (int i = 1; i < selectedReleaseTags.Count() - 1; i++) { var selectedBase = selectedReleaseTags[i + 1]; var selectedHead = selectedReleaseTags[i]; commits = await client.Repository.Commit.Compare ( repositoryId, selectedBase.CommitSha, selectedHead.CommitSha ); foreach (GitHubCommit commit in commits.Commits) { workItems.Add(GetWorkItemFromGitHubCommit(commit, selectedHead.Release)); } } return(workItems); }
public async Task <IList <WorkItem> > GetReleaseWorkItemsAsync(long repositoryId, ReleaseTag releaseTag) { GitHubClient client = GetClient(); return(await GetWorkItemsInReleaseAsync(client, repositoryId, releaseTag)); }
public async Task <IList <WorkItem> > GetReleaseWorkItemsAsync(ReleaseTag releaseTag) { Repository gitHubRepo = await GetRepositoryAsync(); return(await GetReleaseWorkItemsAsync(gitHubRepo.Id, releaseTag)); }
public async Task <IList <WorkItem> > GetReleaseWorkItemsInRangeAsync(long repositoryId, ReleaseTag @base, ReleaseTag head) { GitHubClient client = GetClient(); return(await GetWorkItemsInRangeAsync(client, repositoryId, @base, head)); }
public async Task <IList <WorkItem> > GetReleaseWorkItemsInRangeAsync(ReleaseTag @base, ReleaseTag head) { Repository gitHubRepo = await GetRepositoryAsync(); return(await GetReleaseWorkItemsInRangeAsync(gitHubRepo.Id, @base, head)); }