/// <summary>
		/// Stories and Defects associated with this Request.
		/// </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.Requests.Clear();
			filter.Requests.Add(this);
			return Instance.Get.PrimaryWorkitems(filter);
		}
		/// <summary>
		/// Stories and Defects completed in this Build Run
		/// </summary>
		public ICollection<PrimaryWorkitem> GetCompletedPrimaryWorkitems(PrimaryWorkitemFilter filter)
		{
			filter = filter ?? new PrimaryWorkitemFilter();
			filter.CompletedIn.Clear();
			filter.CompletedIn.Add(this);
			return Instance.Get.PrimaryWorkitems(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);
		}
        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));
        }
 private static ICollection<PrimaryWorkitem> GetFilteredPrimaryWorkitemsForProject(Project project)
 {
     var filter = new PrimaryWorkitemFilter();
     filter.Epic.Add(null);
     var primaryWorkitems = project.GetPrimaryWorkitems(filter);
     return primaryWorkitems;
 } 
		/// <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);
		}
		/// <summary>
		/// PrimaryWorkiems that are immediate children of this Epic
		/// </summary>
		public ICollection<PrimaryWorkitem> GetChildPrimaryWorkiems(PrimaryWorkitemFilter filter)
		{
			filter = filter ?? new PrimaryWorkitemFilter();
			filter.Epic.Clear();
			filter.Epic.Add(this);
			return Instance.Get.PrimaryWorkitems(filter);
		}
 /// <summary>
 /// Return the total estimate for all stories and defects owned by this member 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("OwnedWorkitems:PrimaryWorkitem", filter ?? new PrimaryWorkitemFilter(), "Estimate");
 }
        private PrimaryWorkitemFilter GetFilter() {
            var filter = new PrimaryWorkitemFilter();
            filter.Project.Add(SandboxProject);
			return filter;
		}
        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));
		}
Exemplo n.º 11
0
        private void RefreshStuff()
        {
            Clear(menuOtherStuff.DropDownItems);
            Clear(menuMyStuff.DropDownItems);
            if (Global.Config.IsValid && Global.IsValid)
            {
                var filter = new PrimaryWorkitemFilter();
                GetActiveIterations().ForEach(iteration => filter.Iteration.Add(iteration));
                filter.State.Add(State.Active);
                filter.OrderBy.Add("RankOrder");
                foreach (PrimaryWorkitem pw in Global.Instance.Get.PrimaryWorkitems(filter))
                {
                    ToolStripMenuItem myItem = null;
                    ToolStripMenuItem otherItem = null;

                    if (pw.Owners.Contains(Global.Instance.LoggedInMember))
                    {
                        myItem = CreateMenuItem(pw);
                        menuMyStuff.DropDownItems.Add(myItem);
                    }
                    else
                    {
                        otherItem = CreateMenuItem(pw);
                        menuOtherStuff.DropDownItems.Add(otherItem);
                    }

                    var taskFilter = new TaskFilter();
                    taskFilter.Parent.Add(pw);
                    taskFilter.OrderBy.Add("RankOrder");
                    foreach (Task task in Global.Instance.Get.Tasks(taskFilter))
                        RefreshSubItem(pw, task, ref myItem, ref otherItem);

                    var testFilter = new TestFilter();
                    testFilter.Parent.Add(pw);
                    testFilter.OrderBy.Add("RankOrder");
                    foreach (Test test in Global.Instance.Get.Tests(testFilter))
                        RefreshSubItem(pw, test, ref myItem, ref otherItem);
                }
            }
        }
		[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());
		}