2017-02-03 13 views
0

WorkItemStore 컬렉션이 있습니다. 각 WorkItem에 대한 작업을 수행해야합니다. 필자가 반복하는 동안 BoardColumn을 가져와야합니다. 간단하지만 WorkItem에서 BoardColumn을 가져 오는 방법을 알아내는 데 어려움을 겪고 있습니다.C# 각 작업 항목에 대해 TFS 간판 보드 열 가져 오기

 // Get our WorkItem Store 
     TfsTeamProjectCollection projectCollection = GetTfsProjectCollection(tfsCollectionUri); 
     WorkItemStore workItemStore = (WorkItemStore)projectCollection.GetService(typeof(WorkItemStore)); 

     // Run a query for all Tasks on the "New Creative Work" Board. 
     WorkItemCollection queryResults = workItemStore.Query(
      "Select [State], [Title] " + 
      "From WorkItems " + 
      "Where[System.AreaPath] = '<MySysAreaPath>' " + 
      "AND[System.BoardLane] = '<MyBoardLane>'" + 
      "AND[System.State] Does Not Contain 'Completed'"); 

     foreach(WorkItem item in queryResults) 
     { 
      string myBoardColumn = item[DO NOT KNOW WHAT GOES HERE]... 
      //DO Stuff > Update db record 
     } 

어떤 도움도 대단히 감사합니다 !!!!

+0

쿼리하는 TFS의 버전은 무엇? –

+0

안녕 데이브, TFS를 사용하고 있습니다. 2015 –

답변

1

가장 쉬운 방법은 TFS 2015.1 이상 버전에서 TFS를 TFS 2015 업데이트 1 이상으로 업그레이드하는 것입니다. 작업 항목 쿼리에서 보드 열 필드를 사용하도록 설정되었습니다. 작업 항목 쿼리에서 Kanban 필드를 쉽게 쿼리하고 표시 할 수 있습니다.

는 쿼리에서 각 작업 항목에 대한 TFS 보드 열 필드를 얻으려면, 아래의 코드를 참조하십시오

using Microsoft.TeamFoundation.WorkItemTracking.Client; 
using Microsoft.TeamFoundation.Client; 
using System; 

namespace GetWorkItemField 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://tfsserver:8080/tfs/teamprojectcollection")); 
      var service = tfs.GetService<WorkItemStore>(); 
      string workItemQueryString = "Select Id, Title From WorkItems Where [System.TeamProject] = 'TeamProject'"; 
      var workItemQuery = new Query(service, workItemQueryString); 
      WorkItemCollection queryResults = workItemQuery.RunQuery(); 

      foreach (WorkItem item in queryResults) 
      { 
       var t = item.Fields["System.BoardColumn"]; 
       Console.WriteLine("{0}: {1}", item.Title, t.Value); 
      } 

     } 
    } 
} 
+0

귀하의 의견을 보내 주셔서 감사합니다. TFS 2015가 있고 BoardColumn에 대한 쿼리를 수행 할 수 있다는 것을 알고 있지만이 방법으로는 열을 열거해야합니다. 그러나 열 이름이 변경 될 수 있고 코드를 업데이트해야하기 때문에 이것이 최선의 방법은 아닙니다. 최적의 접근 방식은 내 작업 항목을 모든 보드에서 가져 오는 것입니다. 그런 다음 각각의 작업 항목을 쿼리 할 때 어떤 열에 속하는지 묻습니다. 이것을 할 수있는 방법이 있는지 아십니까? 미안하다. –