Esempio n. 1
0
        private PrimaryWorkitemFilter GetFilter()
        {
            var filter = new PrimaryWorkitemFilter();

            filter.Project.Add(SandboxProject);
            return(filter);
        }
Esempio n. 2
0
 /// <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));
        }
Esempio n. 4
0
 /// <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));
 }
Esempio n. 5
0
 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));
     }
 }
Esempio n. 6
0
        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));
        }
Esempio n. 7
0
 /// <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));
 }
Esempio n. 8
0
        [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());
            }
        }
Esempio n. 9
0
        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);
            }
        }
Esempio n. 10
0
 /// <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));
 }
Esempio n. 15
0
 /// <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"));
 }