Exemple #1
0
        public async Task <IActionResult> GetBurndownDataAsync([FromQuery(Name = QueryStringParameters.TeamName)] string teamName, [FromQuery(Name = QueryStringParameters.Milestone)] string milestone, [FromQuery(Name = QueryStringParameters.Label)] string label, [FromQuery] bool includeInvestigations, CancellationToken cancellationToken)
        {
            if (!ModelState.IsValid)
            {
                throw new InvalidOperationException(ModelState.Values.First().Errors.First().ErrorMessage);
            }

            IWorkEstimator workEstimator = await GetWorkEstimatorAsync(teamName, cancellationToken);

            TeamInfo team = await this.GetCurrentTeamAsync(teamName, cancellationToken);

            IEnumerable <string> labels = null;

            if (label != null)
            {
                labels = label.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries).Select(item => item.Trim()).ToArray();
            }

            BurndownDTO burnDownData = await workEstimator.GetBurndownDataAsync(
                new IssuesQuery
            {
                Team                  = team,
                Milestone             = milestone,
                FilterLabels          = labels,
                IncludeInvestigations = includeInvestigations,
                Clause                = IssuesQueryClause.All,
                QueryIssues           = true
            }, cancellationToken);

            return(new JsonResult(burnDownData));
        }
        public async Task <ActionResult <MergedPRsViewModel> > ExportMarkdown(string team, CancellationToken cancellationToken)
        {
            if (!ModelState.IsValid)
            {
                throw new InvalidOperationException(ModelState.Values.First().Errors.First().ErrorMessage);
            }

            IWorkEstimator workEstimator = await GetWorkEstimatorAsync(team, cancellationToken);

            TeamInfo teamInfo = await this.GetCurrentTeamAsync(team, cancellationToken);

            return(new MergedPRsViewModel
            {
                PullRequests = await workEstimator.GetPullRequestsAsync(DateTimeOffset.UtcNow.AddDays(-7), cancellationToken),
                Team = teamInfo,
                IconRetriever = await this.CreateProfileIconRetriever(teamInfo, cancellationToken)
            });
        }