【问题标题】:WIQL query to get all the team and the users in a Project?WIQL 查询以获取项目中的所有团队和用户?
【发布时间】:2018-08-12 01:37:21
【问题描述】:

假设我有一个项目名称 =“Scrum”,并且该项目有一些用户并获得了 sprint,所以 **我希望项目的 dstinct 用户在 Scrum 中进行 Sprint **。附上图片。

【问题讨论】:

  • 有什么区别,拼写错误?
  • 嗨,Akhil Jain,关于这个问题有什么更新吗?
  • 先生,我不了解 API,您能否通过 c# 代码 wiql @PatrickLu-MSFT 更新您的答案

标签: c# tfs tfs-workitem workitem wiql


【解决方案1】:

您也可以将此代码用于团队:

using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.Framework.Common;
using Microsoft.TeamFoundation.ProcessConfiguration.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client;
using System;
using System.Collections.Generic;
using System.Linq;

namespace QueryLinkedWIQL
{
    class Program
    {

        static List<TeamFoundationTeam> ListTeams(TfsTeamProjectCollection pTpc, Project pProject)
        {
            TfsTeamService _teamService = pTpc.GetService<TfsTeamService>();
            var _teams = _teamService.QueryTeams(pProject.Uri.ToString());

            return (from t in _teams select t).ToList();
        }

        static bool GetTeamsSettings(TfsTeamProjectCollection pTpc, TeamFoundationTeam pTeam)
        {
            try
            {
                var _teamConfig = pTpc.GetService<TeamSettingsConfigurationService>();

                var _configs = _teamConfig.GetTeamConfigurations(new Guid[] { pTeam.Identity.TeamFoundationId  });

                Console.WriteLine("============={0}==================", pTeam.Name);

                Console.WriteLine("Team Members: ");

                foreach (var _member in pTeam.GetMembers(pTpc, MembershipQuery.Expanded))
                    Console.WriteLine("Display Name: " + _member.DisplayName + " || Is active: " + _member.IsActive);

                foreach( var _config in _configs)
                {
                    Console.WriteLine("Team current iteration: " + _config.TeamSettings.CurrentIterationPath);
                    Console.WriteLine("Team selected iterations:");
                    foreach (var _iteration in _config.TeamSettings.IterationPaths)
                        Console.WriteLine(_iteration);
                    Console.WriteLine("Team selected areas:");
                    foreach (var _area in _config.TeamSettings.TeamFieldValues)
                        Console.WriteLine("Area path: " + _area.Value + " || Include children: " + _area.IncludeChildren.ToString());
                }

                Console.WriteLine("===============================");


            }
            catch (Exception)
            {
                return false;
            }

            return true;
        }

        static void Main(string[] args)
        {

            string _teamProject = "YourProjectName";

            try
            {
                TfsTeamProjectCollection _tpc = new TfsTeamProjectCollection(new Uri("http://yourserver/DefaultCollection"));

                WorkItemStore _wistore = _tpc.GetService<WorkItemStore>();

                var _teams = ListTeams(_tpc, _wistore.Projects[_teamProject]);
                foreach (var _team in _teams) GetTeamsSettings(_tpc, _team);

            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
                Console.WriteLine(ex.StackTrace);
            }
        }
    }
}

【讨论】:

  • 有没有办法让项目中的所有迭代(冲刺)和不同的用户(忘记团队)你可以修改你的答案。
  • 嘿@Shamray 你能帮我解决我关于 WIQL 的问题吗stackoverflow.com/questions/49434095/…
【解决方案2】:

根据您的描述,您似乎希望获得所有团队(包括团队中的所有用户)和每个团队的相应 sprint。

它无法通过 WIQL 执行此操作。 WIQL 是一种工作项查询语言,用于查询错误、任务、其他类型的工作项。返回值应该是工作项。

相反,您可以使用 Rest API 来实现您的要求。

1.首先,Get a list of teams在一个项目中。

GET https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_apis/projects/eb6e4656-77fc-42a1-9181-4c6d8e9da5d1/teams?api-version=2.2

2.Get a team's members

GET https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/_apis/projects/eb6e4656-77fc-42a1-9181-4c6d8e9da5d1/teams/564e8204-a90b-4432-883b-d4363c6125ca/members/?api-version=2.2

3.Get a team's iterations

GET https://{instance}/DefaultCollection/{project}/{team}/_apis/work/TeamSettings/Iterations?[$timeframe=current&]api-version={version}

结合上面的 Rest API,你可以通过 Scrum 项目中的 Sprint 和团队的所有用户来实现这个获取团队名称。

【讨论】:

  • 有什么方法可以得到一个项目的所有迭代?
猜你喜欢
  • 2018-09-01
  • 1970-01-01
  • 2021-01-06
  • 2012-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-23
相关资源
最近更新 更多