2012-01-16 10 views
5

Chcę utworzyć nowy element pracy w TFS przy użyciu zestawu SDK i chcę ustawić kosztorysy wysiłku. Mój kod w tej chwili wygląda tak, jak tenUstaw oszacowanie wysiłku za pomocą TFS Work Item SDK

Ale wydaje się, że nic nie ma w interfejsie dla WorkItem, który pozwala mi ustawić oszacowanie nakładu pracy. Czy ktoś wie, jak to się robi?

Odpowiedz

7

Okazuje się, że jest to wykonywane za pomocą operatora [] na obiekcie 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

Możesz także odwoływać się do pól, używając ich "nazwy referencyjnej", np. "Original Estimate" = "Microsoft.VSTS.Scheduling.OriginalEstimate". –

+2

Zmodyfikowałem odpowiedź i dodałem "nowy UICredentialsProvider()" do wywołania GetTeamProjectCollection(). Spowoduje to wyświetlenie monitu o zalogowanie, jeśli bieżący użytkownik nie ma dostępu. –

+1

Ponadto, zamiast używać metody workItemService.BatchSave() - jeśli zapisujesz tylko jeden element pracy, możesz równie dobrze użyć item.Save(). Zachowaj ostrożność podczas używania funkcji BatchSave(), ponieważ otrzymujesz szereg błędów, z którymi musisz sobie poradzić, w przeciwnym razie niepowodzenie elementu roboczego będzie "po cichu". –

Powiązane problemy