/// <summary> /// Aktualisiert eine neue Datenbank /// </summary> /// <param name="surface"></param> public ScrumDatabase(ScrumSurface surface) { this.EffortSum = new EffortPoints(0); this.Surface = surface; this.UserStories = new List <UserStory>(); this.Epics = new List <Epic>(); }
/// <summary> /// Gibt den Index für die Spalte des gewünschten Aufwands an /// </summary> /// <param name="pt"></param> /// <returns></returns> private int GetEffortIndex(EffortPoints pt) { for (int i = 0; i < EffortPoints.PreDefined.Length; i++) { if (EffortPoints.PreDefined[i].Value == pt.Value) { return(i); } } return(0); }
/// <summary> /// Initialisiert eine neue User Story mit Standardwerten /// Backlog: Product Backlog /// EffortPoints: Unendlich /// Priorität: 1 /// </summary> public UserStory() { this.BacklogStatus = ItemBacklogStatus.PRODUCT_BACKLOG; this.Type = SubType.USER_STORY; this.ItemID = NextUserStoryID++; Effort = new EffortPoints(); Effort.EffortPointsChanged += (s, e) => { if (e.ExternallyTriggered) { this.OnDataChanged(); } }; }
/// <summary> /// Berechnet die Effort-Summe neu /// </summary> private void RecalcEffortSum() { EffortPoints ep = new EffortPoints(0); foreach (UserStory us in UserStories) { if (us.BacklogStatus == ItemBacklogStatus.SPRINT_BACKLOG) { ep += us.Effort; } } this.EffortSum.Value = ep.Value; }
private void us_ProjectStatusChanged(object sender, EventArgs e) { UserStory us = sender as UserStory; if (us != null) { if (us.BacklogStatus == ItemBacklogStatus.SPRINT_BACKLOG) { this.EffortSum += us.Effort; } else { RecalcEffortSum(); } } }
//------------------------------------------------------------------------- virtual public void GetAsXml(XmlElement xml) { // Type. XmlAttribute attrib = xml.OwnerDocument.CreateAttribute("type"); attrib.Value = GetType().AssemblyQualifiedName; xml.Attributes.Append(attrib); // Id. XmlElement element = xml.OwnerDocument.CreateElement("Id"); element.InnerText = Id.ToString(); xml.AppendChild(element); // Title. element = xml.OwnerDocument.CreateElement("Title"); element.InnerText = Title; xml.AppendChild(element); // Description. element = xml.OwnerDocument.CreateElement("Description"); element.InnerText = Description; xml.AppendChild(element); // Points. element = xml.OwnerDocument.CreateElement("ValuePoints"); element.InnerText = ValuePoints.ToString(); xml.AppendChild(element); element = xml.OwnerDocument.CreateElement("EffortPoints"); element.InnerText = EffortPoints.ToString(); xml.AppendChild(element); element = xml.OwnerDocument.CreateElement("PriorityPoints"); element.InnerText = PriorityPoints.ToString(); xml.AppendChild(element); }
/// <summary> /// Fügt ein neues Item zu der Datenbank hinzu /// </summary> /// <param name="item"></param> public void AddItem(ItemBase item) { if (item.GetType() == typeof(UserStory)) { UserStory us = item as UserStory; UserStories.Add(us); us.ProjectStatusChanged += us_ProjectStatusChanged; us.Effort.EffortPointsChanged += (s, e) => { RecalcEffortSum(); }; if (us.temp_epicID > 0) { us.Epic = GetItem(us.temp_epicID) as Epic; } if (us.BacklogStatus == ItemBacklogStatus.SPRINT_BACKLOG) { this.EffortSum += us.Effort; } } else { Epics.Add(item as Epic); } Surface.ViewController.CurrentView.LoadItem(item); item.DataChanged += OnItemChanged; }
/// <summary> /// Legt den Aufwand, der dieser Spalte zugewiesen ist, /// auf den angegebenen Wert fest. /// </summary> /// <param name="ep"></param> public void SetEffort(EffortPoints ep) { this.Effort = ep; txt_top.Text = ep; txt_bottom.Text = ep; }