コード例 #1
0
        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);
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        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));
            }
        }
コード例 #4
0
        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)));
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }