private List <WorkItemNode> FilterOutItemsOnDate(List <WorkItemNode> list, List <WorkItemNode> finalList, Duration duration) { if (finalList == null) { finalList = new List <WorkItemNode>(); } list.ForEach(w => { try { if (w.Item.CreatedDate < duration.To) { WorkItemNode wiClone = new WorkItemNode { Item = w.Item.ChangedDate > duration.To ? w.Item.Store.GetWorkItem(w.Item.Id, duration.To) : w.Item, Children = new List <WorkItemNode>() }; finalList.Add(wiClone); wiClone.Children = FilterOutItemsOnDate(w.Children, wiClone.Children, duration); } } catch { //i } }); return(finalList); }
public static Item CreateItem(WorkItemNode workItem) { Item item = null; switch ((string)workItem.Item.Fields[TFSLiterals.WorkItemType].Value) { case TFSLiterals.Task: item = new TFS.Model.Task(); break; case TFSLiterals.TechDebt: item = new TFS.Model.TechnicalDebt(); break; case TFSLiterals.UserStory: item = new TFS.Model.UserStory(); break; case TFSLiterals.OutOfScope: item = new TFS.Model.OutOfScope(); break; case TFSLiterals.Bug: item = new TFS.Model.Bug(); break; case TFSLiterals.Feature: item = new TFS.Model.Feature(); break; case TFSLiterals.EnhancementRequest: item = new TFS.Model.EnhancementRequest(); break; default: item = new TFS.Model.Item(); break; } item.Initialize(workItem); return(item); }
private List <WorkItemNode> WalkLinks(Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemCollection workItemCollection, WorkItemLinkInfo[] workItemLinks, WorkItemNode current) { var currentId = 0; if (current != null) { currentId = current.Item.Id; } var workItems = (from linkInfo in workItemLinks where linkInfo.SourceId == currentId select new WorkItemNode() { Item = workItemCollection[workItemCollection.IndexOf(linkInfo.TargetId)], }).ToList(); workItems.ForEach(w => w.Children = WalkLinks(workItemCollection, workItemLinks, w)); return(workItems); }