[英]Using TFS WIQL to get changeset IDs for a User Story?
檢索分配給我的用戶故事
WorkItemStore _WorkItemStore = (WorkItemStore) __ProjectCollection.GetService(typeof(WorkItemStore));
String _Query = @"SELECT [System.Id] FROM WorkItems where [Assigned to] = @Me AND [Work Item Type] = 'User Story'";
WorkItemCollection _Collection = _WorkItemStore.Query(_Query);
用戶素材可以將任務或Bug工作項類型指定為子項。 然后,錯誤/任務具有與其相關聯的變更集。
我是否可以檢索附加到作為這些用戶故事的子項的任務/錯誤的這些變更集的列表?
我正在添加這個答案作為替代方案,但是我仍然想知道是否可以通過WIQL查詢實現相同的結果。
我編寫的遞歸函數,用於檢索與任何子工作項關聯的userstory的所有更改集。
public List<Changeset> Query(int id, List<Changeset> associatedChangesets)
{
WorkItemStore _WorkItemStore = (WorkItemStore) __ProjectCollection.GetService(typeof(WorkItemStore));
WorkItem _WorkItem = _WorkItemStore.GetWorkItem(id);
List<Changeset> _AssociatedChangesets;
if (associatedChangesets == null)
{
_AssociatedChangesets = new List<Changeset>();
}
else
{
_AssociatedChangesets = associatedChangesets;
}
foreach (Link _Link in _WorkItem.Links)
{
RelatedLink _RelatedLink = null;
ExternalLink _ExternalLink = null;
if(_Link is RelatedLink)
{
_RelatedLink = (RelatedLink)_Link;
}
else if(_Link is ExternalLink)
{
_ExternalLink = (ExternalLink)_Link;
}
if (_ExternalLink != null)
{
ArtifactId _Artifact = LinkingUtilities.DecodeUri(_ExternalLink.LinkedArtifactUri);
if (String.Equals(_Artifact.ArtifactType, "Changeset", StringComparison.Ordinal))
{
_AssociatedChangesets.Add(__VersionControl.ArtifactProvider.GetChangeset(new Uri(_ExternalLink.LinkedArtifactUri)));
}
}
if (_RelatedLink != null)
{
if (String.Equals(_RelatedLink.LinkTypeEnd.Name, "Child", StringComparison.Ordinal))
{
associatedChangesets = Query(_RelatedLink.RelatedWorkItemId, _AssociatedChangesets);
}
}
}
return associatedChangesets;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.