2012-01-16 23 views
5

TFSでSDKを使用して新しい作業項目を作成したいので、項目の作業量見積もりを設定したいと思います。現時点でのコードは次のようになりますTFSを使用して作業量の見積もりを設定する作業項目SDK

var coll = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://galaxy:8080/tfs/crisp")); 

    var workItemService = coll.GetService<WorkItemStore>(); 

    var parent = workItemService.GetWorkItem(parentWorkItemId); 

    WorkItemType workItemType =parent.Project.WorkItemTypes 
      .Cast<WorkItemType>() 
      .First(candidateType => candidateType.Name.Equals("Task")); 



    WorkItem item = workItemType.NewWorkItem(); 
    item.Title = work.Name; 


    //Set effort estimate here 

    workItemService.BatchSave(new WorkItem[]{ item }); 

WorkItemのインターフェースには、見積もりを設定できるものはありません。誰がこれがどのように行われたか知っていますか?

答えて

7

WorkItemオブジェクトの[]演算子を使用することで、これが完了しました。

var coll = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://galaxy:8080/tfs/crisp"), new UICredentialsProvider()); 

var workItemService = coll.GetService<WorkItemStore>(); 

var parent = workItemService.GetWorkItem(parentWorkItemId); 

WorkItemType workItemType =parent.Project.WorkItemTypes 
      .Cast<WorkItemType>() 
      .First(candidateType => candidateType.Name.Equals("Task")); 

WorkItem item = workItemType.NewWorkItem(); 
item.Title = "A name"; 

item["Original Estimate"] = duration.TotalHours; 
item["Completed Work"] = duration.TotalHours; 
item["Remaining Work"] = 0.0; 

int workItemId = item.Save(); 
+1

「参照名」を使用してフィールドを参照することもできます。 'Original Estimate' = 'Microsoft.VSTS.Scheduling.OriginalEstimate'。 –

+2

私は答えを修正し、GetTeamProjectCollection()呼び出しに '新しいUICredentialsProvider()'を追加しました。現在のユーザーにアクセス権がない場合は、ログインプロンプトが表示されます。 –

+1

また、workItemService.BatchSave()を使用する代わりに、1つの作業項目だけを保存する場合は、item.Save()を使用することもできます。 BatchSave()を使用するときは、処理しなければならないエラーの配列を取得するように注意してください。そうしないと、作業項目の保存が「自動的に」失敗します。 –

関連する問題