private void RemoveCompleted(WorkItemElement element) { Dictionary <string, object> fields = new Dictionary <string, object>(); fields.Add("Microsoft.VSTS.Scheduling.CompletedWork", 0); var r = TFS2.UpdateWorkItem(element.Id, fields); }
public void AddWorkItem(WorkItem workItem) { int parentid = -1; foreach (var x in workItem.Relations) { if (x.Rel == "System.LinkTypes.Hierarchy-Reverse") { parentid = int.Parse(x.Url.Substring(x.Url.LastIndexOf("/") + 1)); } } WorkItemElement element = new WorkItemElement(); element.Id = workItem.Id.Value; element.Title = workItem.Fields["System.Title"].ToString(); element.Iteration = workItem.Fields["System.IterationPath"].ToString(); element.Type = workItem.Fields["System.WorkItemType"].ToString(); element.Status = workItem.Fields["System.State"].ToString(); element.AreaPath = workItem.Fields["System.AreaPath"].ToString(); element.Project = workItem.Fields["System.TeamProject"].ToString(); element.AssignedTo = GetField(workItem, "System.AssignedTo"); element.CompletedWork = GetField(workItem, "Microsoft.VSTS.Scheduling.CompletedWork"); element.FoundOn = GetField(workItem, "Microsoft.VSTS.common.BugFoundOn"); element.ParentElementId = parentid; if (workItem.Fields.ContainsKey("Microsoft.VSTS.Scheduling.OriginalEstimate")) { element.Estimation = float.Parse(workItem.Fields["Microsoft.VSTS.Scheduling.OriginalEstimate"].ToString()); } element.Activity = workItem.Fields.ContainsKey("Microsoft.VSTS.Common.Activity") ? workItem.Fields["Microsoft.VSTS.Common.Activity"].ToString() : string.Empty; foreach (var us in this.UserStories) { //pw: add hierachy if (us.Id == parentid) { var x1 = us.WorkItems.FirstOrDefault(x => x.Id == element.Id); if (x1 == null) { us.WorkItems.Add(element); } } else { foreach (var task in us.WorkItems) { if (task.Id == parentid) { task.WorkItems.Add(element); } } } } }
public void CloneElement(WorkItemElement element) { Dictionary <string, object> fields = new Dictionary <string, object>(); Action <string, object> addIfNotNull = (name, o) => { if (o != null) { fields.Add(name, o); } }; fields.Add("Title", element.Title); fields.Add("Activity", element.Activity); fields.Add("Priority", 1); fields.Add("System.AssignedTo", element.AssignedTo); fields.Add("System.AreaPath", element.AreaPath); fields.Add("System.IterationPath", element.Iteration); addIfNotNull("Microsoft.VSTS.Scheduling.CompletedWork", element.CompletedWork); addIfNotNull("Microsoft.VSTS.common.BugFoundOn", "Test"); var item = TFS2.CreateWorkItem(element.Project, element.Type, fields); TFS2.AddParentLink(item.Id.Value, element.ParentElementId); fields.Clear(); if (element.Type == "eco Bug") { fields.Add("State", "Resolved"); fields.Add("Ecovadis.TargetRelease", "10.66"); TFS2.UpdateWorkItem(item.Id.Value, fields); fields.Clear(); } if (element.Type == "Eco Task") { fields.Add("State", "Active"); TFS2.UpdateWorkItem(item.Id.Value, fields); fields.Clear(); } fields.Add("State", "Closed"); var r = TFS2.UpdateWorkItem(item.Id.Value, fields); Console.WriteLine(item.Url); }