通过TFS工作项SDK设置工作量估算

Cei*_*ish 5 .net tfs tfs-sdk

我想使用SDK在TFS中创建一个新的工作项,我想设置项目的工作量估算.我的代码目前看起来像这样

    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 });
Run Code Online (Sandbox Code Playgroud)

但是WorkItem的界面似乎没有任何东西允许我设置工作量估算.有谁知道这是怎么做的?

Cei*_*ish 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();
Run Code Online (Sandbox Code Playgroud)

  • 我修改了答案,并在GetTeamProjectCollection()调用中添加了"new UICredentialsProvider()".如果当前用户没有访问权限,则会显示登录提示. (2认同)