я хочу, чтобы все пользователи с итерацией в проекте. Допустим, проект «Precient» имеет 9 отдельных пользователей с 20 итерациями, поэтому мне нужны отдельные пользователи со всеми итерациями в проекте WIQL C#
. Это связано с вопросом. Запрос WIQL, чтобы получить все команда и пользователи в проекте?
но не помогает мне в полной мере
как получить всех пользователей вместе с командной итерацией проекта TFS WIQL?
comment
Пожалуйста, предоставьте код, который вы пробовали, и объясните, что именно не сработало, как ожидалось.
- person Mary   schedule 14.04.2018
Ответы (2)
Вы можете получить это через 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); } } }
person
Shamrai Aleksander
schedule
22.03.2018
нужна помощь здесь stackoverflow.com/questions/52025525/
- person ; 26.08.2018
Он не может получить пользователей из Team через WIQL. WIQL — это язык запросов к рабочим элементам, который используется для поиска ошибок, задач и других типов рабочих элементов. Возвращаемое значение должно быть рабочим элементом.
Вам нужно использовать api как @Shamray для получения пользователей. В следующем блоге также приведен пример:
http://blogs.microsoft.co.il/shair/2012/05/20/tfs-api-part-44-vs11-teams-and-team-members/
person
Cece Dong - MSFT
schedule
23.03.2018
есть ли способ использовать rest API без PAT (токен)?
- person ; 23.03.2018
я использую TFS 2015 !! Пожалуйста, напишите код C# для подключения TFS с помощью REST API и получения всех пользователей и итерации проекта.
- person ; 23.03.2018
Вы можете использовать Basic аутентификацию с вашими учетными данными Windows в вашем API. Остальные API вы должны найти в Получить список команд, Получить участников команды, Получить итерации команды. Информацию о том, как использовать REST API в коде C#, см. на этом веб-сайте: docs.microsoft.com/en-us/vsts/integrate/get-started/
- person Cece Dong - MSFT; 26.03.2018