コード例 #1
0
ファイル: MainForm.cs プロジェクト: versionone/V1TaskManager
 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;
 }
コード例 #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.");
        }
コード例 #3
0
        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>();
        }
コード例 #4
0
ファイル: MainForm.cs プロジェクト: versionone/V1TaskManager
        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;
        }
コード例 #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);
        }
コード例 #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.");
                }
            }
        }
コード例 #7
0
 /// <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);
 }
コード例 #8
0
 /// <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;
 }
コード例 #9
0
 /// <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);
 }
コード例 #10
0
ファイル: MainForm.cs プロジェクト: versionone/V1TaskManager
 private static void AddDetailsOption(ToolStripItemCollection items, Workitem item)
 {
     CreateButton(items, "Details", DetailsClick, item);
 }
コード例 #11
0
		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;
		}
コード例 #12
0
ファイル: MainForm.cs プロジェクト: versionone/V1TaskManager
 private Image GetEntityIcon(Workitem item)
 {
     return iconList.Images[item.GetType().Name];
 }
コード例 #13
0
ファイル: MainForm.cs プロジェクト: versionone/V1TaskManager
 private void AddUpdateOption(ToolStripItemCollection items, Workitem item)
 {
     CreateButton(items, "Update", UpdateClick, item);
 }
コード例 #14
0
ファイル: MainForm.cs プロジェクト: versionone/V1TaskManager
 private void AddTakeOption(ToolStripItemCollection items, Workitem item)
 {
     CreateButton(items, "Take", TakeClick, item);
 }
コード例 #15
0
ファイル: MainForm.cs プロジェクト: versionone/V1TaskManager
 private void AddCloseOption(ToolStripItemCollection items, Workitem item)
 {
     CreateButton(items, "Close", CloseClick, item);
 }
コード例 #16
0
 /// <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);
 }
コード例 #17
0
            /// <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;
            }
コード例 #18
0
ファイル: MainForm.cs プロジェクト: versionone/V1TaskManager
        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);
            }
        }