My ultimate goal is to return the parent of one work item recursively, as long as there are no more parents in the hierarchy. There is nothing recursive at the moment, I'm still able to optimize the way I get the parent work item. I thought about how to do this with the request:
public WorkItem GetParentWorkItem(int id) { StringBuilder queryString = new StringBuilder("SELECT [System.Id]" + " FROM WorkItemLinks " + " WHERE [Source].[System.WorkItemType] = '" + TFS_TIMESHEET_WORK_ITEM_TYPE + "'" + " AND [Source].[System.TeamProject] = '" + TFS_TIMESHEET_PROJECT_KEY + "'" + " AND [Source].[System.Id] = " + id ); Query wiQuery = new Query(GetWorkItemStore, queryString.ToString()); WorkItemLinkInfo[] wiTrees = wiQuery.RunLinkQuery(); WorkItem wi = GetWorkItemStore.GetWorkItem(wiTrees[1].TargetId); return wi; }
The problem with this method is that it gets all related work items, including predecessor, successor, child, and parents. I knew wiTrees[1] is the parent work item, so I hardcoded the index.
I found out a way to get the "parent" WorkItemTypeEnd object from the work item store:
WorkItemLinkTypeEnd linkTypEnd = GetWorkItemStore.WorkItemLinkTypes.LinkTypeEnds["Parent"];
Where am I going from here?
source share