示例#1
0
        /// <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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
            }
        }