private void QueryItems(string teamProject, string query, List <int> workItemIds, HighlightFilter highlightings) { if (UIContext.Instance.GetMainTabPage() != FormMain.TABIDX_WORKITEMS) { UIContext.Instance.SetMainTabPage(FormMain.TABIDX_WORKITEMS); } query = query.Replace("@PROJECT", "@project"); var context = new Hashtable(); context.Add("project", teamProject); WorkItemCollection items = null; try { items = Context.ItemStore.Query(query, context); } catch (Exception e) { MessageBox.Show("Validating query failed, reason: \n\r" + e.Message, "Validating query", MessageBoxButtons.OK, MessageBoxIcon.Error); } if (items != null) { displayFields = items.DisplayFields; sqlEditor.Text = query; lastQueryText = query; lastQueryTeamProject = teamProject; this.cachedWorkItems = new List <WorkItem>(); this.lvWI.Groups.Clear(); var teamProjects = new List <string>(); foreach (WorkItem workItem in items) { this.cachedWorkItems.Add(workItem); teamProject = (string)workItem.Fields[CoreField.TeamProject].Value; if (!teamProjects.Contains(teamProject)) { teamProjects.Add(teamProject); } } teamProjects.Sort((x, y) => { return(string.Compare(x, y)); }); teamProjects.ForEach(project => this.lvWI.Groups.Add(project, project)); PopulateWI(true, highlightings); SelectWorkItems(workItemIds); } }
private void LocateWorkItemsForUser(string teamProject, string fieldName) { ListViewItem focusedItem = this.lvUsers.FocusedItem; if (focusedItem == null) { return; } string userDisplayName = focusedItem.SubItems[1].Text; StringBuilder fieldWhere = new StringBuilder(); StringBuilder fieldColumns = new StringBuilder(); string teamProjectWhere = string.Empty; HighlightFilter hightligths = new HighlightFilter(); if (fieldName == "@") { foreach (var workItemFieldName in this.workItemFields.Values) { fieldWhere.AppendFormat("{0} = '{1}' OR ", workItemFieldName, userDisplayName); fieldColumns.AppendFormat("{0} ,", workItemFieldName); hightligths.Add(workItemFieldName.Replace("[", "").Replace("]", ""), new HighlightCondition(userDisplayName, Color.Green)); } fieldWhere = fieldWhere.Remove(fieldWhere.Length - 3, 3); fieldColumns = fieldColumns.Remove(fieldColumns.Length - 1, 1); } else { fieldColumns.Append(fieldName); fieldWhere.AppendFormat("{0} = '{1}'", fieldName, userDisplayName); hightligths.Add(fieldName.Replace("[", "").Replace("]", ""), new HighlightCondition(userDisplayName, Color.Green)); } if (teamProject != "@") { teamProjectWhere = string.Format("AND [System.TeamProject] = '{0}'", teamProject); hightligths.Add("System.TeamProject", new HighlightCondition(teamProject, Color.Green)); } string query = string.Format( @"SELECT [System.Id], [System.Title], [System.TeamProject], {0} FROM WorkItems WHERE {1} {2} ORDER BY [System.TeamProject] ASC, [System.Id] DESC", fieldColumns, fieldWhere, teamProjectWhere); UIContext.Instance.ControlWorkItems.FindRelatedWorkItems(teamProject, query, hightligths); //this.mainForm.controlWorkItems.FindRelatedWorkItems(teamProject, query, hightligths); }
private void FindRelatedWorkItems(string teamProject, string query, List <int> focusByWI_IDs, HighlightFilter highlightings) { QueryItems(teamProject, query, focusByWI_IDs, highlightings); blockSelectedChange = true; try { this.cmbTeamProjects.Text = teamProject; PopulateQueries(); } finally { blockSelectedChange = false; } SynchroTeamProjectText(null, EventArgs.Empty); }
public void FindRelatedWorkItems(string teamProject, string query, HighlightFilter highlightings) { FindRelatedWorkItems(teamProject, query, new List <int>(), highlightings); }
internal void PopulateWI(bool resort, HighlightFilter highlightings) { this.lvWI.BeginUpdate(); try { BackupSelectedItems(); if (resort) { SortListData(); } this.lvWI.Items.Clear(); List <ColumnHeader> columnsToRemove = new List <ColumnHeader>(); foreach (ColumnHeader column in lvWI.Columns) { //string tag = column.Tag as string; //bool canRemove = tag != "0"; bool canRemove = (column.Name == field_BuildIn || column.Name == field_IntegrationBuild); if (canRemove) { columnsToRemove.Add(column); } } columnsToRemove.ForEach(columnHeader => lvWI.Columns.Remove(columnHeader)); COLUMN_FOUNDIN = -1; COLUMN_INTEGRATIONBUILD = -1; if (this.cachedWorkItems != null) { foreach (FieldDefinition fieldDef in displayFields) { if (defaultFields.Contains(fieldDef.ReferenceName)) { continue; } ColumnHeader columnHeader = this.lvWI.Columns.Add(fieldDef.Name); columnHeader.Tag = "0";//fieldDef.ReferenceName; columnHeader.Name = fieldDef.ReferenceName; if (fieldDef.ReferenceName == field_BuildIn) { COLUMN_FOUNDIN = lvWI.Columns.Count - 1; } else if (fieldDef.ReferenceName == field_IntegrationBuild) { COLUMN_INTEGRATIONBUILD = lvWI.Columns.Count - 1; } } string[] columnsTemp = new string[this.lvWI.Columns.Count]; int idx = 0; foreach (ColumnHeader column in this.lvWI.Columns) { columnsTemp[idx++] = column.Text; } foreach (WorkItem workItem in this.cachedWorkItems) { ListViewItem viewItem = this.lvWI.Items.Add(workItem.Id.ToString()); viewItem.UseItemStyleForSubItems = false; viewItem.Tag = workItem; viewItem.SubItems.Add(workItem.Type.Name); viewItem.SubItems.Add(workItem.Title); viewItem.SubItems.Add(workItem.ChangedDate.ToString()); bool alreadyhightlighted = false; foreach (FieldDefinition fieldDef in displayFields) { string workItemFieldContent = null; if (defaultFields.Contains(fieldDef.ReferenceName) || !workItem.Fields.Contains(fieldDef.ReferenceName)) { if (fieldDef.ReferenceName == field_BuildIn || fieldDef.ReferenceName == field_IntegrationBuild) { workItemFieldContent = string.Empty; } else { continue; } } if (workItemFieldContent == null) { workItemFieldContent = workItem[fieldDef.ReferenceName].ToString(); } ListViewItem.ListViewSubItem subItem = viewItem.SubItems.Add(workItemFieldContent); if (highlightings != null && highlightings.ContainsKey(fieldDef.ReferenceName)) { HighlightCondition condition = highlightings[fieldDef.ReferenceName]; if (Util.StrEqual(subItem.Text, condition.Value, true)) { subItem.ForeColor = condition.ForeColor; if (!alreadyhightlighted) { subItem.BackColor = condition.BackColor; alreadyhightlighted = true; } } } } var teamProject = (string)workItem.Fields[CoreField.TeamProject].Value; viewItem.Group = this.lvWI.Groups[teamProject]; } } } finally { this.lvWI.EndUpdate(); RestoreSelectedItems(); } }