private IssueAttributeItemViewModel CreateItemViewModel(IssueMilestone milestone) { var vm = new IssueAttributeItemViewModel(milestone.Name, string.Equals(SelectedValue, milestone.Name)); vm.SelectCommand.Subscribe(y => SelectedValue = !vm.IsSelected ? vm.Name : null); vm.SelectCommand.BindCommand(DismissCommand); return(vm); }
private async void UpdateMilestoneListAsync() { (string owner, string repository) = UIHelpers.GetRepoOwner(cboAvailableRepos.SelectedItem); IEnumerable <IssueMilestone> milestones = await s_issueManager.GetMilestonesAsync(owner, repository); cboMilestones.Enabled = false; // keep track of the old selected milestone and try to re-apply it in the new repo IssueMilestone previousMilestone = cboMilestones.SelectedItem as IssueMilestone; IssueMilestone newMilestoneInUI = null; cboMilestones.Items.Clear(); foreach (IssueMilestone item in milestones) { IssueMilestone newMilestone = item; cboMilestones.Items.Add(newMilestone); // if a milestone was selected previously and we did have a milestone in the new repo that has the same title // then use that in the UI. if (previousMilestone != null && previousMilestone.Title == newMilestone.Title) { newMilestoneInUI = newMilestone; } } cboMilestones.SelectedItem = newMilestoneInUI; // if we did not find a matching milestone in the new repo, clear the text. if (newMilestoneInUI == null) { cboMilestones.Text = string.Empty; } cboMilestones.Enabled = true; }
public async Task <IReadOnlyList <IssueBbsItem> > GetPageAsync( [FromRoute] int page = default, [FromQuery] IssueMilestone milestone = default, [FromQuery] IssueStatus status = default, [FromQuery] string keyword = default) { using (var repo = MainRepository.WithRead()) { var chara = await repo.Character.GetByIdAsync(this.AuthData.CharacterId).GetOrErrorAsync(ErrorCode.LoginCharacterNotFoundError); var period = (short)-1; var betaVersion = (short)0; if (milestone != default) { var system = await repo.System.GetAsync(); if (milestone == IssueMilestone.CurrentPeriod) { period = system.Period; betaVersion = system.BetaVersion; } else if (milestone == IssueMilestone.NextPeriod) { period = system.IsNextPeriodBeta ? system.Period : (short)(system.Period + 1); betaVersion = system.IsNextPeriodBeta ? (short)(system.BetaVersion + 1) : (short)0; } else if (milestone == IssueMilestone.PeriodUnset) { period = 0; betaVersion = 0; } } return(await repo.IssueBbs.GetPageThreadsAsync(page, 20, period, betaVersion, status, keyword)); } }
public async Task <IssueMilestone> GetMilestoneAsync(string owner, string repo, string milestoneName) { using IDisposable scope = _fileLogger.CreateScope($"Retrieving milestone with name {milestoneName}"); IEnumerable <IssueMilestone> milestones = await GetValueFromCache(StringTemplate.Milestones(owner, repo), async() => IssueMilestone.FromMilestoneList(await _githubClient.Issue.Milestone.GetAllForRepository(owner, repo).ConfigureAwait(false))); return(milestones.FirstOrDefault(issue => StringComparer.OrdinalIgnoreCase.Equals(issue.Title, milestoneName))); }
public async Task <IEnumerable <IssueMilestone> > GetMilestonesAsync(string owner, string repo) { using IDisposable scope = _fileLogger.CreateScope("Retrieving milestones"); IEnumerable <IssueMilestone> milestones = await GetValueFromCache(StringTemplate.Milestones(owner, repo), async() => IssueMilestone.FromMilestoneList(await _githubClient.Issue.Milestone.GetAllForRepository(owner, repo).ConfigureAwait(false))); return(milestones); }
public async Task <IEnumerable <IssueMilestone> > GetMilestonesAsync(string owner, string repo) { IEnumerable <IssueMilestone> milestones = await GetValueFromCache(StringTemplate.Milestones(owner, repo), async() => IssueMilestone.FromMilestoneList(await _githubClient.Issue.Milestone.GetAllForRepository(owner, repo))); return(milestones); }