我想让所有用户在项目中进行迭代。
假设项目“Precient”有 9 个不同的用户,进行了 20 次迭代,所以我希望不同的用户具有项目中的所有迭代WIQL C#
.这与问题有关。WIQL 查询获取项目中的所有团队和用户? https://stackoverflow.com/questions/49092830/wiql-query-to-get-all-the-team-and-the-users-in-a-project
但并不能完全帮助我
您可以通过 REST API 或 Net API 获取该信息。这是 Net API 的示例。
- 您可以获取“项目有效用户”组中的所有用户
-
您可以从项目根迭代中获取所有迭代。
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.Framework.Client;
using Microsoft.TeamFoundation.Framework.Common;
using Microsoft.TeamFoundation.Server;
using Microsoft.TeamFoundation.WorkItemTracking.Client;
using System;
using System.Collections.Generic;
namespace GetUserіAndItearions
{
class Program
{
public class Iteration
{
public string Path;
public DateTime DateFrom;
public DateTime DateTo;
}
static void Main(string[] args)
{
string _teamProject = "Your_Project_Name";
try
{
TfsTeamProjectCollection _tpc = new TfsTeamProjectCollection(new Uri("http://your_server:8080/tfs/DefaultCollection"));
GetAllUsers(_tpc, _teamProject);
GetAllIterations(_tpc, _teamProject);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
Console.WriteLine(ex.StackTrace);
}
}
private static void GetAllIterations(TfsTeamProjectCollection pTpc, string pProjectName)
{
List<Iteration> _its = new List<Iteration>();
WorkItemStore _wistore = pTpc.GetService<WorkItemStore>();
var _css = pTpc.GetService<ICommonStructureService4>();
foreach (Node _node in _wistore.Projects[pProjectName].IterationRootNodes)
FillIterations(_css, _node, _its);
Console.WriteLine("Iterations:");
foreach (Iteration _it in _its) Console.WriteLine("{0}:{1}-{2}", _it.Path,
(_it.DateFrom == DateTime.MinValue) ? "0" : _it.DateFrom.ToShortDateString(), (_it.DateTo== DateTime.MinValue) ? "0" : _it.DateTo.ToShortDateString());
}
private static void FillIterations(ICommonStructureService4 pCss, Node pNode, List<Iteration> pIts)
{
var _nodeInfo = pCss.GetNode(pNode.Uri.AbsoluteUri);
pIts.Add(new Iteration { Path = _nodeInfo.Path,
DateFrom = (_nodeInfo.StartDate == null) ? DateTime.MinValue : (DateTime)_nodeInfo.StartDate,
DateTo = (_nodeInfo.FinishDate == null) ? DateTime.MinValue : (DateTime)_nodeInfo.FinishDate });
if (pNode.HasChildNodes)
foreach (Node _node in pNode.ChildNodes)
FillIterations(pCss, _node, pIts);
}
private static void GetAllUsers(TfsTeamProjectCollection pTpc, string pProjectName)
{
List<string> listUsers = new List<string>();
WorkItemStore _wistore = pTpc.GetService<WorkItemStore>();
var _gss = pTpc.GetService<IIdentityManagementService>();
var _teamProject = _wistore.Projects[pProjectName];
string _validGroupName = "[" + pProjectName + "]\\Project Valid Users";
TeamFoundationIdentity _group = _gss.ReadIdentity(IdentitySearchFactor.DisplayName, _validGroupName, MembershipQuery.Expanded, ReadIdentityOptions.ExtendedProperties);
List<string> _memebersIds = new List<string>();
foreach (var _member in _group.Members) _memebersIds.Add(_member.Identifier);
var _members = _gss.ReadIdentities(IdentitySearchFactor.Identifier, _memebersIds.ToArray(), MembershipQuery.Expanded, ReadIdentityOptions.ExtendedProperties);
foreach (var _member in _members) if (!_member[0].IsContainer) listUsers.Add(_member[0].DisplayName);
Console.WriteLine("Users:");
foreach (var _user in listUsers) Console.WriteLine("{0}", _user);
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)