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