/// <summary> /// Create a new work item based on template /// </summary> /// <param name="projectName"></param> /// <param name="template"></param> /// <param name="fields"></param> /// <returns></returns> static WorkItem CreateWorkItemByTemplate(string projectName, WorkItemTemplate template, Dictionary <string, object> fields) { JsonPatchDocument patchDocument = new JsonPatchDocument(); foreach (var templateKey in template.Fields.Keys) //set default fields from template { if (!fields.ContainsKey(templateKey)) //exclude fields added by users { patchDocument.Add(new JsonPatchOperation() { Operation = Operation.Add, Path = "/fields/" + templateKey, Value = template.Fields[templateKey] }); } } //add user fields foreach (var key in fields.Keys) { patchDocument.Add(new JsonPatchOperation() { Operation = Operation.Add, Path = "/fields/" + key, Value = fields[key] }); } return(WitClient.CreateWorkItemAsync(patchDocument, projectName, template.WorkItemTypeName).Result); }
public WorkItemTemplate CreateTemplate() { VssConnection connection = Context.Connection; WorkItemTrackingHttpClient client = connection.GetClient <WorkItemTrackingHttpClient>(); Dictionary <string, string> field = new Dictionary <string, string> { { "System.State", "New" } }; WorkItemTemplate newTemplate = new WorkItemTemplate() { Name = "Test Template", Description = "Template to be created", WorkItemTypeName = "Feature", Fields = field }; WorkItemTemplate result = null; try { result = client.CreateTemplateAsync(newTemplate, getTeamContext()).Result; Context.SetValue <Guid>("$newTemplateId", result.Id); Console.WriteLine("Create template Successed."); } catch (Exception e) { Console.WriteLine("Create template Failed:" + e.Message); } return(result); }
static void Main(string[] args) { ConnectWithDefaultCreds(TFUrl); string teamProject = ""; //team prtoject name string templateName = ""; //work item template name WorkItemTemplate wiTemplate = GetTemplate(teamProject, templateName); if (wiTemplate != null) { Dictionary <string, object> fields = new Dictionary <string, object>(); fields.Add("System.Title", "New work item"); var newWorkItem = CreateWorkItemByTemplate(teamProject, wiTemplate, fields); } }