C# WIQL查询以获取项目中的所有团队和用户?

C# WIQL查询以获取项目中的所有团队和用户?,c#,tfs,tfs-workitem,workitem,wiql,C#,Tfs,Tfs Workitem,Workitem,Wiql,假设我有一个project name=“Scrum”,其中有一些用户参与了该项目并获得了sprint,因此**我希望项目的dstinct用户在Scrum**中进行sprint。附图片。 根据您的描述,似乎您希望获得所有团队(包括团队中的所有用户)以及每个团队对应的sprint 它无法通过WIQL实现这一点是一种工作项查询语言,用于查询bug、任务和其他类型的工作项。返回值应为工作项 相反,您可以使用restapi来实现您的需求 1.首先,在项目中 GET https://fabrikam-fib

假设我有一个project name=“Scrum”,其中有一些用户参与了该项目并获得了sprint,因此**我希望项目的dstinct用户在Scrum**中进行sprint。附图片。

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

它无法通过WIQL实现这一点是一种工作项查询语言,用于查询bug、任务和其他类型的工作项。返回值应为工作项

相反,您可以使用restapi来实现您的需求

1.首先,在项目中

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

三,


结合上述Rest API,您可以通过Scrum项目中的Sprint和团队的所有用户实现此get team名称。

您还可以为团队使用以下代码:

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);
            }
        }
    }
}
使用Microsoft.TeamFoundation.Client;
使用Microsoft.TeamFoundation.Framework.Common;
使用Microsoft.TeamFoundation.ProcessConfiguration.Client;
使用Microsoft.TeamFoundation.WorkItemTracking.Client;
使用制度;
使用System.Collections.Generic;
使用System.Linq;
命名空间querylinkdwiql
{
班级计划
{
静态列表列表团队(TfsTeamProjectCollection pTpc、Project pProject)
{
TfsTeamService _teamService=pTpc.GetService();
var\u teams=\u teamService.QueryTeams(pProject.Uri.ToString());
返回(从t中选择t).ToList();
}
静态bool GetTeamsSettings(TfsTeamProjectCollection pTpc、TeamFoundationTeam PTAM)
{
尝试
{
var_teamConfig=pTpc.GetService();
var_configs=_teamConfig.GetTeamConfigurations(新Guid[]{pTeam.Identity.TeamFoundationId});
Console.WriteLine(“=======================================================”,pTeam.Name);
Console.WriteLine(“团队成员:”);
foreach(pTeam.GetMembers(pTpc,MembershipQuery.Expanded)中的var_成员)
Console.WriteLine(“显示名称:”+_member.DisplayName+“|处于活动状态:”+_member.IsActive);
foreach(变量配置在配置中)
{
WriteLine(“团队当前迭代:”+_config.TeamSettings.CurrentIterationPath);
Console.WriteLine(“团队选择的迭代:”);
foreach(在_config.TeamSettings.iterationpath中的var _迭代)
Console.WriteLine(_迭代);
Console.WriteLine(“团队选定区域:”);
foreach(在_config.TeamSettings.TeamFieldValues中的变量区域)
Console.WriteLine(“区域路径:++u Area.Value+”| | Include children:++u Area.IncludeChildren.ToString());
}
Console.WriteLine(“===========================================”);
}
捕获(例外)
{
返回false;
}
返回true;
}
静态void Main(字符串[]参数)
{
字符串_teamProject=“YourProjectName”;
尝试
{
TfsatmProjectCollection\u tpc=新TfsatmProjectCollection(新Uri(“http://yourserver/DefaultCollection"));
WorkItemStore _wistore=_tpc.GetService();
var_teams=列表团队(_tpc,_wistore.Projects[_teamProject]);
foreach(var_team in_team)获取团队设置(_tpc,_team);
}
捕获(例外情况除外)
{
Console.WriteLine(“错误:+ex.Message”);
控制台写入线(例如StackTrace);
}
}
}
}

什么是错误,拼写错误?嗨,Akhil Jain,关于这个问题有什么更新吗?先生,我不知道API,你能用c#code wiql@PatrickLu msfti更新你的答案吗?有什么方法可以在项目中获得所有迭代(sprint)和不同的用户(忘记团队)你能修改你的答案吗?嘿@Shamray你能帮我解决我关于WIQL的问题吗?有什么办法可以得到一个项目的所有迭代?
GET https://{instance}/DefaultCollection/{project}/{team}/_apis/work/TeamSettings/Iterations?[$timeframe=current&]api-version={version}
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);
            }
        }
    }
}