【问题标题】:Using TFS WIQL to get changeset IDs for a User Story?使用 TFS WIQL 获取用户故事的变更集 ID?
【发布时间】:2014-03-13 05:38:25
【问题描述】:

检索分配给我的用户故事

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

用户故事可以将任务或错误工作项类型作为子项分配给它。然后错误/任务具有链接到它们的变更集。

我是否可以检索这些变更集的列表,这些变更集附加到作为这些用户故事的子项的任务/错误?

【问题讨论】:

    标签: c# tfs wiql


    【解决方案1】:

    我添加了这个答案作为替代方案,但我仍然想知道是否可以通过 WIQL 查询实现相同的结果。

    我编写的一个递归函数,用于检索与任何子工作项关联的用户故事的所有变更集。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-11
      • 2011-12-06
      • 2014-09-21
      • 2014-07-17
      • 1970-01-01
      • 2017-12-27
      • 2011-01-22
      相关资源
      最近更新 更多