gpt4 book ai didi

c# - 如何获得所有用户以及 TFS WIQL 项目的团队迭代?

转载 作者:行者123 更新时间:2023-11-30 21:35:12 24 4
gpt4 key购买 nike

我想让所有用户在项目中进行迭代。可以说“Precient”项目有 9 个不同的用户,有 20 个迭代,所以我希望项目 WIQL C# 中有所有迭代的不同用户。它与问题相关。 WIQL query to get all the team and the users in a Project?
但不能完全帮助我

最佳答案

您可以通过 REST API 或 Net API 获得它。这是 Net API 的示例。

  1. 您可以从“Project Valid Users”组中获取所有用户
  2. 您可以从项目根迭代中获取所有迭代。

    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);
    }

    }
    }

关于c# - 如何获得所有用户以及 TFS WIQL 项目的团队迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49434095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com