void BuildQueryView()
{
queryStore.Clear();
foreach (var server in TFSVersionControlService.Instance.Servers)
{
var node = queryStore.AddNode().SetValue(titleField, server.Name);
foreach (var pc in server.ProjectCollections)
{
node.AddChild().SetValue(titleField, pc.Name);
var workItemManager = new WorkItemManager(pc);
foreach (var projectInfo in pc.Projects.OrderBy(x => x.Name))
{
var workItemProject = workItemManager.GetByGuid(projectInfo.Guid);
if (workItemProject == null)
continue;
node.AddChild().SetValue(titleField, projectInfo.Name);
var privateQueries = workItemManager.GetMyQueries(workItemProject);
if (privateQueries.Any())
{
node.AddChild().SetValue(titleField, "My Queries");
foreach (var query in privateQueries)
{
node.AddChild().SetValue(titleField, query.QueryName).SetValue(queryField, query);
node.MoveToParent();
}
node.MoveToParent();
}
var publicQueries = workItemManager.GetPublicQueries(workItemProject);
if (publicQueries.Any())
{
node.AddChild().SetValue(titleField, "Public");
foreach (var query in publicQueries)
{
node.AddChild().SetValue(titleField, query.QueryName).SetValue(queryField, query);
node.MoveToParent();
}
node.MoveToParent();
}
node.MoveToParent();
}
queryView.ExpandRow(node.CurrentPosition, true);
}
}
var cursor = queryStore.GetFirstNode();
if (cursor.MoveToChild()) //Move to Project Collections
queryView.ExpandToRow(cursor.CurrentPosition);
}