2017-05-19 12 views
2

WorkItemのリストがあるので、C#のTFS 2015 APIを使用してコードレビューに対応するインスタンスを探したいと思います。TFS APIを使用したコードレビューであるWorkItemを確認

私は作業項目がコードレビューであるかどうかの説明のテキストから見ることができますが、私はその文字列を解析回避を好むし、より堅牢なもの(例:WorkItem.Type)に依存しているでしょう...

どのようにでしょうそれはどうですか(型の値は私にとってはかなりわかりにくいようです)?

+1

WorkItem.Type.Nameは、作業項目の種類を判別する簡単な方法です。私はあなたが望むようなインスタンスが何であるか知りたいですか? –

+0

OK、私は既にWorkItem.Type.Nameソリューションに行ってきました...タイプ名のチェックが十分に堅牢であるかどうかは不明でしたが(私は店舗の既存のタイプのインスタンスと比較すべきだと思っていました) 'workitem.Type.Name =="コードレビューリクエスト "は十分です、そうですか? –

+0

enumを定義することができます(https://weblogs.asp.net/stefansedich/enum-with-string-values-in-c) –

答えて

2

次の方法を使用して、作業項目の種類を取得できます。しかし、作業項目IDを指定する必要があります。

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

     Uri collectionUri = (args.Length < 1) ? 
      new Uri("http://servername:8080/tfs/MyCollection") : new Uri(args[0]); 

     // Connect to the server and the store. 
     TfsTeamProjectCollection teamProjectCollection = 
      new TfsTeamProjectCollection(collectionUri); 

     WorkItemStore workItemStore = teamProjectCollection.GetService<WorkItemStore>(); 
     string queryString = "Select [State], [Title],[Description] From WorkItems Where [Work Item Type] = 'Code Review Request' or [Work Item Type] = 'Code Review Response'"; 

     // Create and run the query. 
     Query query = new Query(workItemStore, queryString); 
     WorkItemCollection witCollection = query.RunQuery(); 

     foreach (WorkItem workItem in witCollection) 
     { 
      workItem.Open(); 
      Console.WriteLine(workItem.Fields["Title"].Value.ToString()); 

     } 
+0

WorkItemのリストが与えられたので、私はこのコードを使用してコードレビューであるものをフィルタリングしました: 'workItems.Where(x => x.Type.Name =="コードレビューリクエスト ")'。しかし、実際には文字列比較よりも堅牢なものは何もありませんか?それともTFSの型名が石で設定されていますか? –

+0

私は仕事の項目のリストを持っています(私のプロジェクトからはそうです)、単にコードレビューであるものをフィルタリングしたいだけです。私はあなたのテストがうまくいくと思います(私のこともそうですが)、タイプ名のテストよりも頑強なものを探していました。あなたはこのテストが十分に頑丈で、私が過ごしたことは過度のものだと言っていますか? –

+0

@ GyumFox作業項目クエリを使用して、必要な作業項目を検索します。 –

関連する問題