private PrimaryWorkitemFilter GetFilter() { var filter = new PrimaryWorkitemFilter(); filter.Project.Add(SandboxProject); return(filter); }
/// <summary> /// A collection of stories and defects that belong to this iteration /// </summary> /// <param name="filter">Criteria to filter stories and defects on. Pass a DefectFilter or StoryFilter to get only Defects or Stories, respectively.</param> public ICollection <PrimaryWorkitem> GetPrimaryWorkitems(PrimaryWorkitemFilter filter) { filter = filter ?? new PrimaryWorkitemFilter(); filter.Iteration.Clear(); filter.Iteration.Add(this); return(Instance.Get.PrimaryWorkitems(filter)); }
public void ProjectTotalEstimateSliceByIteration() { var story1 = EntityFactory.CreateStory("Story 1", SandboxProject); var story2 = EntityFactory.CreateStory("Story 2", SandboxProject); var iteration = EntityFactory.Create(() => SandboxProject.CreateIteration()); iteration.Name = "Test Iteration"; iteration.Save(); story1.Estimate = 1.0; story2.Estimate = 2.0; var inIteration1 = CreateStory("In 1", SandboxProject, iteration); var inIteration2 = CreateStory("In 2", SandboxProject, iteration); Assert.AreEqual(SandboxProject, inIteration1.Project); Assert.AreEqual(SandboxProject, inIteration2.Project); inIteration1.Estimate = 10.0; inIteration2.Estimate = 5.0; story1.Save(); story2.Save(); inIteration1.Save(); inIteration2.Save(); var filter = new PrimaryWorkitemFilter(); filter.Iteration.Add(iteration); Assert.AreEqual(15.0, SandboxProject.GetTotalEstimate(filter)); }
/// <summary> /// Primary workitems that are affected by this defect /// </summary> /// <param name="filter">Criteria to filter stories and defects on. Pass a DefectFilter or StoryFilter to get only Defects or Stories, respectively.</param> public ICollection <PrimaryWorkitem> GetAffectedPrimaryWorkitems(PrimaryWorkitemFilter filter) { filter = filter ?? new PrimaryWorkitemFilter(); filter.AffectedByDefects.Clear(); filter.AffectedByDefects.Add(this); return(Instance.Get.PrimaryWorkitems(filter)); }
private static void RecurseProjects(PrimaryWorkitemFilter filter, IEnumerable <Project> projects) { foreach (Project project in projects) { filter.Project.Add(project); var pfilter = new ProjectFilter(); pfilter.State.Add(State.Active); RecurseProjects(filter, project.GetChildProjects(pfilter)); } }
public void OnlyStoriesandDefects() { var root = SandboxProject.ParentProject; var wiFilter = new PrimaryWorkitemFilter(); wiFilter.State.Add(State.Active); double?totalEstimate = Instance.Get.Workitems(wiFilter).Where(workitem => workitem.DetailEstimate != null) .Aggregate <Workitem, double?>(null, (current, workitem) => current + workitem.DetailEstimate); Assert.AreEqual(totalEstimate, root.GetTotalDetailEstimate(wiFilter)); }
/// <summary> /// Stories and Defects with source changes in this Build Run /// </summary> public ICollection <PrimaryWorkitem> GetAffectedPrimaryWorkitems(PrimaryWorkitemFilter filter) { filter = filter ?? new PrimaryWorkitemFilter(); // The BuildRun's connected to the ChangeSets. foreach (ChangeSet changeSet in ChangeSets) { // The ChangeSet's connected to the PWI's. Sing with me, now! foreach (PrimaryWorkitem pwi in changeSet.PrimaryWorkitems) { // Add the specific items by ID. filter.DisplayID.Add(pwi.DisplayID); } } return(Instance.Get.PrimaryWorkitems(filter)); }
[Test] public void FilterListTypeText() { PrimaryWorkitem story = SandboxProject.CreateStory("Going to filter on Status"); story.Status.CurrentValue = "In Progress"; story.Save(); ResetInstance(); PrimaryWorkitemFilter filter = new PrimaryWorkitemFilter(); filter.Status.Add("In Progress"); IEnumerable <PrimaryWorkitem> result = Instance.Get.PrimaryWorkitems(filter); Assert.IsTrue(FindRelated(story, result)); foreach (PrimaryWorkitem workitem in result) { Assert.AreEqual("In Progress", workitem.Status.ToString()); } }
private void RefreshStoryList() { storyList.Items.Clear(); if (SelectedProject != null) { var filter = new PrimaryWorkitemFilter(); filter.State.Add(State.Active); filter.Project.Add(SelectedProject); if (!Global.Config.SingleLevelProjectView) { var pfilter = new ProjectFilter(); pfilter.State.Add(State.Active); RecurseProjects(filter, SelectedProject.GetChildProjects(pfilter)); } var sort = (List <string>)storyList.Tag; if (sort != null) { sort.ForEach(s => filter.OrderBy.Add(s)); } else { filter.OrderBy.Add(Global.Config.DefaultSort); } ICollection <PrimaryWorkitem> items = Global.Instance.Get.PrimaryWorkitems(filter); foreach (PrimaryWorkitem item in items) { bool bFound = _buckets.Any(bucket => bucket.Items.ContainsKey(item.ID)); if (!bFound) { AddBacklog(item, storyList); } } storyList.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); } }
/// <summary> /// Get primary workitems (stories and defects) filtered by the criteria specified in the passed in filter. /// </summary> /// <param name="filter">Limit the items returned. If null, then all items returned.</param> /// <returns>ICollection of items as specified in the filter.</returns> public ICollection <PrimaryWorkitem> PrimaryWorkitems(PrimaryWorkitemFilter filter) { return(Get <PrimaryWorkitem>(filter ?? new PrimaryWorkitemFilter())); }
/// <summary> /// Return the total estimate for all stories and defects in this project optionally filtered /// </summary> /// <param name="filter">Criteria to filter stories and defects on.</param> /// <returns></returns> public double?GetTotalEstimate(PrimaryWorkitemFilter filter) { return(GetTotalEstimate(filter, false)); }
/// <summary> /// Return the total estimate for all stories and defects in this project optionally filtered /// </summary> /// <param name="filter">Criteria to filter stories and defects on.</param> /// <param name="includeChildProjects">If true, include open sub projects, otherwise only include this project</param> /// <returns></returns> public double?GetTotalEstimate(PrimaryWorkitemFilter filter, bool includeChildProjects) { return(GetRollup("Workitems:PrimaryWorkitem", "Estimate", filter ?? new PrimaryWorkitemFilter(), includeChildProjects)); }
/// <summary> /// Get PrimaryWorkitems in this Project filtered as specified in the passed in filter. /// </summary> /// <param name="filter">Criteria to filter on. Project will be set automatically. If null, all stories and defects in the project are returned.</param> /// <param name="includeSubprojects">Specifies whether to include items from sub project or not. This only adds open subprojects.</param> /// <returns>An ICollection of PrimaryWorkitem</returns> public ICollection <PrimaryWorkitem> GetPrimaryWorkitems(PrimaryWorkitemFilter filter, bool includeSubprojects) { return(Instance.Get.PrimaryWorkitems(WithThisProjectIncludedIn(filter, includeSubprojects))); }
/// <summary> /// Get PrimaryWorkitems in this Project filtered as specified in the passed in filter. /// </summary> /// <param name="filter">Criteria to filter on. Project will be set automatically. If null, all stories and defects in the project are returned.</param> /// <returns>An ICollection of PrimaryWorkitem</returns> public ICollection <PrimaryWorkitem> GetPrimaryWorkitems(PrimaryWorkitemFilter filter) { return(GetPrimaryWorkitems(filter, false)); }
/// <summary> /// Return the total estimate for all stories and defects in this iteration optionally filtered /// </summary> /// <param name="filter">Criteria to filter stories and defects on. Pass a DefectFilter or StoryFilter to get only Defects or Stories, respectively.</param> /// <returns></returns> public double?GetTotalEstimate(PrimaryWorkitemFilter filter) { return(GetSum("Workitems:PrimaryWorkitem", filter ?? new PrimaryWorkitemFilter(), "Estimate")); }