読者です 読者をやめる 読者になる 読者になる

Natural Software

KinectなどのDepthセンサーを中心に活動しています

TFS Advent Calendarの6日目・TFSの作業項目(チケット)をAPIで取得、更新する #tfsug

この記事はTFS Advent Calendarの6日目の記事です。
サイトはこちら:http://atnd.org/events/22819

前回はAPIで作業項目の登録を行いました。
今回は、登録された作業項目を取得し、内容を変更して更新する方法を紹介します。
動作イメージはこんな感じです。
f:id:kaorun55:20111206103000p:image
プロジェクト一式はこちらです

TfsClient

前回から機能を足しました。差分のみ掲載します。
既存の作業項目は、WorkItemStore.GetWorkItemに取得するIDを設定します。IDが有効であれば、登録時と同じWorkItemに作業項目の内容が入って返されます。
あとは、それを使って下記のように表示や更新を行います。

public WorkItem GetWorkItem( int id )
{
    return workItemStore.GetWorkItem( id );
}

Main

使う側です
AddWorkItemまでは前回と同様で、AddWorkItemで登録時の作業項目IDが返されます。
そのIDを使って、作業項目を取り直してみます。取得した作業項目の内容を表示すると、設定したものが確認できます。
また、作業項目の更新は、そのままWorkItemの内容を更新し、WorkItem.Saveで行います。再度、作業項目を取り直し表示すると、内容が更新されていることがわかります。

Uri uri = new Uri( "http://win7-vm:8080/tfs/" );
NetworkCredential credential = new NetworkCredential( "hoge", "foo" );
string collenctionName = "win7-vm\\DefaultCollection";
string projectName = "TFS_API_SAMPLE";

TfsClient tfs = new TfsClient( uri, credential,
                    collenctionName, projectName );
int id = tfs.AddWorkItem();

WorkItem item = tfs.GetWorkItem( id );
Console.WriteLine( item.Title + ":" + item.Description );
                
item.Title = "タイトルを変更します";
item.Description = "詳細は詳しく、細かく書きましょう";
item.Save();

WorkItem updateItem = tfs.GetWorkItem( id );
Console.WriteLine( updateItem.Title + ":" + updateItem.Description );

まとめ

これで、作業項目に関する基本的なことはできるでしょう。
次回以降は、作業項目の内容の列挙や添付ファイルの登録方法などを紹介します。