2012-01-16 13 views
5

के माध्यम से प्रयास अनुमान सेट करें मैं एसडीके का उपयोग कर टीएफएस में एक नया कार्य आइटम बनाना चाहता हूं, और मैं आइटम के प्रयास अनुमान सेट करना चाहता हूं। इस समय मेरे कोड इसटीएफएस कार्य आइटम एसडीके

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

तुम भी अपने 'संदर्भ नाम', उदा का उपयोग कर खेतों का उल्लेख कर सकते 'मूल अनुमान' = 'माइक्रोसॉफ्ट। वीएसटीएस। शेड्यूलिंग। ऑरिगिनलएस्टिम'। –

+2

मैंने उत्तर संशोधित किया और GetTeamProjectCollection() कॉल में 'नया UICredentialsProvider()' जोड़ा। यदि वर्तमान उपयोगकर्ता के पास पहुंच नहीं है तो यह एक लॉगिन प्रॉम्प्ट प्रदर्शित करेगा। –

+1

इसके अलावा, workItemService.BatchSave() का उपयोग करने के बजाय - यदि आप केवल एक कार्य आइटम सहेज रहे हैं, तो आप आइटम का उपयोग भी कर सकते हैं। सहेजें()। बैचसेव() का उपयोग करते समय सावधान रहें, क्योंकि आपको त्रुटियों की एक सरणी मिलती है जिसे आपको संभालना है, अन्यथा कोई कार्य आइटम सहेजने से 'चुपचाप' विफल हो जाएगा। –

संबंधित मुद्दे