Получить иерархию детей, используя WorkItemLinks
Я пытаюсь получить всех детей с заданным идентификатором рабочего элемента из TFS, используя TFS API и C#
Вот сценарий
Особенность (Id: 1)
-> Элемент незавершенного производства (Id: 2) -> Задача (Id: 3)
-> Товар в резерве товара (Id: 4)
Работа с идентификатором: 1 имеет 2 детей с идентификаторами 2 и 4
Id: 2 имеет ребенка с Id: 3
Когда передан идентификатор рабочего элемента, я хочу получить все дочерние элементы, заполнить дерево, так что для вышеописанного сценария I при пропуске Id: 1 метод должен вернуть все дочерние идентификаторы 2, 3, 4. Вот что у меня есть, с трудом делать рекурсивный вызов,, может кто-нибудь помочь мне
Примечание: я не хочу использовать wiql для возврата иерархии, я хочу вернуть все дочерние элементы, используя WorkItemLinks
public List<string> getWorkItemChildren(string Collection, string Project, int Id)
{
var teamCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("tfsConnection" + Collection));
teamCollection.EnsureAuthenticated();
WorkItemStore store = new WorkItemStore(teamCollection);
Query query = new Query(store, "select * from issue where System.TeamProject = @project", new Dictionary<string, string>() { { "project", Project } });
query.RunQuery();
WorkItem workitem = store.GetWorkItem(Id);
int parentLinkId = store.WorkItemLinkTypes.LinkTypeEnds["Parent"].Id;
List<int> relatedWorkItemIds = new List<int>();
List<string> relatedWorkItemType = new List<string>();
if(workitem.Links.Count!=0)
{
foreach (WorkItemLink link in workitem.WorkItemLinks)
{
if (link.LinkTypeEnd.Id != parentLinkId)
{
relatedWorkItemIds.Add(link.TargetId);
}
}
foreach (var linkType in relatedWorkItemIds)
{
WorkItem relatedWorkItem = store.GetWorkItem(linkType);
relatedWorkItemType.Add(relatedWorkItem.Type.Name);
foreach(WorkItemLink childlinks in relatedWorkItem.WorkItemLinks)
{
}
}
return relatedWorkItemType;
}
}
1 ответ
Вам необходимо использовать:
Store.GetWorkItem (123);
Затем выполните итерацию по ссылкам, и для каждого дочернего типа ссылок сделайте то же самое.
Затем повторяется...