Ejemplo n.º 1
0
 private static void CreateButton(ToolStripItemCollection items, string title, EventHandler handler,
     Workitem item)
 {
     var button = new ToolStripMenuItem(title, null, handler);
     items.Add(button);
     button.Tag = item;
 }
Ejemplo n.º 2
0
        private TrackingLevel GetTrackingLevel(Workitem workitem)
        {
            Workitem parent;

            if (workitem is SecondaryWorkitem)
            {
                parent = ((SecondaryWorkitem)workitem).Parent;
            }
            else
            {
                parent = workitem;
            }

            if (parent is Story)
            {
                return(Configuration.StoryTrackingLevel);
            }

            if (parent is Defect)
            {
                return(Configuration.DefectTrackingLevel);
            }

            throw new ArgumentOutOfRangeException("workitem", "Expected a Story, a Defect or a child work item of one.");
        }
        public VersionOneWorkItem(Workitem self, IEnumerable<Workitem> children = null, VersionOneWorkItem parent = null)
        {
            Parent = parent;
            DisplayId = self.DisplayID;
            Name = self.Name;
            Url = self.URL;

            Children = children != null
                ? children.Select(i => new VersionOneWorkItem(i, parent: this))
                           : Enumerable.Empty<VersionOneWorkItem>();
        }
Ejemplo n.º 4
0
        private ToolStripMenuItem CreateMenuItem(Workitem pw)
        {
            var pwMenuItem = new ToolStripMenuItem(pw.Name, GetEntityIcon(pw)) {Tag = pw.ID};

            if (!pw.Owners.Contains(Global.Instance.LoggedInMember))
                AddTakeOption(pwMenuItem.DropDownItems, pw);

            AddCloseOption(pwMenuItem.DropDownItems, pw);
            AddUpdateOption(pwMenuItem.DropDownItems, pw);
            AddDetailsOption(pwMenuItem.DropDownItems, pw);

            return pwMenuItem;
        }
Ejemplo n.º 5
0
        internal bool CheckTracking(Workitem workitem)
        {
            var level = GetTrackingLevel(workitem);

            if (workitem is PrimaryWorkitem && level == TrackingLevel.SecondaryWorkitem)
            {
                return(false);
            }

            if (workitem is SecondaryWorkitem && level == TrackingLevel.PrimaryWorkitem)
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Call this before setting Detail Estimate or TODO on a workitem
        /// </summary>
        /// <param name="workitem"></param>
        /// <exception cref="System.InvalidOperationException">If setting DetailEstimate is not allowed at this level.</exception>
        internal void PreventTrackingLevelAbuse(Workitem workitem)
        {
            var level = GetTrackingLevel(workitem);

            if (workitem is PrimaryWorkitem)
            {
                if (level == TrackingLevel.SecondaryWorkitem)
                {
                    throw new InvalidOperationException(
                              "You cannot set DetailEstimate or ToDo on this item, nor can you log effort, because the system is configured to track Detail Estimate and ToDo at the Task/Test level.");
                }
            }
            else
            {
                if (level == TrackingLevel.PrimaryWorkitem)
                {
                    throw new InvalidOperationException(
                              "You cannot set DetailEstimate or ToDo on this item, nor can you log effort, because the system is configured to track Detail Estimate and ToDo at the Story/Defect level.");
                }
            }
        }
 /// <summary>
 /// Create a new effort record with a value and date, assigned to the given workitem and member
 /// </summary>
 /// <param name="value">The value of the effort record</param>
 /// <param name="item">The workitem to assign the effort record to</param>
 /// <param name="member">The member to assign the effort record to</param>
 /// <param name="date">The date to log the effort record against</param>
 /// <returns>A newly minted Effort Record that exists in the VersionOne system.</returns>
 /// <exception cref="System.InvalidOperationException">Effort Tracking is not enabled.</exception>
 public Effort Effort(double value, Workitem item, Member member, DateTime date) {
     return Effort(value, item, member, date, null);
 }
 /// <summary>
 /// Create a new Test with required attributes. Assign it to the given primary workitem.
 /// </summary>
 /// <param name="name">The initial name of the test.</param>
 /// <param name="workitem">The Workitem(Epic, Story, Defect) this Test will belong to.</param>
 /// <param name="attributes">Required attributes.</param>
 /// <returns>A newly minted Test that exists in the VersionOne system.</returns>
 public Test Test(string name, Workitem workitem, IDictionary<string, object> attributes) {
     var test = new Test(instance) {
         Name = name, 
         Parent = workitem
     };
     AddAttributes(test, attributes);
     test.Save();
     return test;
 }
 /// <summary>
 /// Create a new Test with a name. Assign it to the given primary workitem.
 /// </summary>
 /// <param name="name">The initial name of the test.</param>
 /// <param name="workitem">The Workitem(Epic, Story, Defect) this Test will belong to.</param>
 /// <returns>A newly minted Test that exists in the VersionOne system.</returns>
 public Test Test(string name, Workitem workitem) {
     return Test(name, workitem, null);
 }
Ejemplo n.º 10
0
 private static void AddDetailsOption(ToolStripItemCollection items, Workitem item)
 {
     CreateButton(items, "Details", DetailsClick, item);
 }
		private static void SetIcon(TreeNode node, Workitem workitem)
		{
			int index;

			if (workitem is Story)
				index = 0;
			else if (workitem is Defect)
				index = 1;
			else
				index = 2;

			node.ImageIndex = index;
			node.SelectedImageIndex = index;
		}
Ejemplo n.º 12
0
 private Image GetEntityIcon(Workitem item)
 {
     return iconList.Images[item.GetType().Name];
 }
Ejemplo n.º 13
0
 private void AddUpdateOption(ToolStripItemCollection items, Workitem item)
 {
     CreateButton(items, "Update", UpdateClick, item);
 }
Ejemplo n.º 14
0
 private void AddTakeOption(ToolStripItemCollection items, Workitem item)
 {
     CreateButton(items, "Take", TakeClick, item);
 }
Ejemplo n.º 15
0
 private void AddCloseOption(ToolStripItemCollection items, Workitem item)
 {
     CreateButton(items, "Close", CloseClick, item);
 }
 /// <summary>
 /// Create a new effort record for the currently logged in member.
 /// </summary>
 /// <param name="value">The value of the effort record</param>
 /// <param name="item">The workitem to assign the effort record to</param>
 /// <returns>A newly minted Effort Record that exists in the VersionOne system.</returns>
 /// <exception cref="System.InvalidOperationException">Effort Tracking is not enabled.</exception>
 public Effort Effort(double value, Workitem item) {
     return Effort(value, item, null);
 }
            /// <summary>
            /// Create a new effort record for the currently logged in member.
            /// </summary>
            /// <param name="value">The value of the effort record</param>
            /// <param name="item">The workitem to assign the effort record to</param>
            /// <returns>A newly minted Effort Record that exists in the VersionOne system.</returns>
            /// <param name="attributes">Required attributes.</param>
            /// <exception cref="System.InvalidOperationException">Effort Tracking is not enabled.</exception>
            public Effort Effort(double value, Workitem item, IDictionary<string, object> attributes) {
                if(!instance.Configuration.EffortTrackingEnabled) {
                    throw new InvalidOperationException("Effort Tracking is disabled.");
                }

                instance.PreventTrackingLevelAbuse(item);

                var actual = instance.New<Effort>(item);
                actual.Value = value;
                AddAttributes(actual, attributes);
                actual.Save();
                return actual;
            }
Ejemplo n.º 18
0
        private void RefreshSubItem(Workitem parent, Workitem child, ref ToolStripMenuItem myItem,
            ref ToolStripMenuItem otherItem)
        {
            ToolStripItem childItem = CreateMenuItem(child);

            bool isChildOwned = child.Owners.Contains(Global.Instance.LoggedInMember);
            if (isChildOwned)
            {
                if (myItem == null)
                {
                    myItem = CreateMenuItem(parent);
                    menuMyStuff.DropDownItems.Add(myItem);
                }
                myItem.DropDownItems.Add(childItem);
            }
            else
            {
                if (otherItem == null)
                {
                    otherItem = CreateMenuItem(parent);
                    menuOtherStuff.DropDownItems.Add(otherItem);
                }
                otherItem.DropDownItems.Add(childItem);
            }
        }