private VNC.AddinHelper.Excel.XlLocation DisplayListOf_Lists(VNC.AddinHelper.Excel.XlLocation insertAt, IEnumerable <List> lists, bool displayDataOnly, string tableSuffix) { XlHlp.DisplayInWatchWindow(System.Reflection.MethodInfo.GetCurrentMethod().Name, insertAt); Worksheet ws = insertAt.workSheet; if (!displayDataOnly) { insertAt.MarkStart(XlHlp.MarkType.GroupTable); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 40, "Title"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 15, "Id"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 20, "SchemaXml"); insertAt.IncrementRows(); } foreach (var list in lists) { insertAt.ClearOffsets(); XlHlp.AddContentToCell(insertAt.AddOffsetColumn(), list.Title); XlHlp.AddContentToCell(insertAt.AddOffsetColumn(), list.Id.ToString()); XlHlp.AddContentToCell(insertAt.AddOffsetColumn(), list.SchemaXml); insertAt.IncrementRows(); } XlHlp.DisplayInWatchWindow(System.Reflection.MethodInfo.GetCurrentMethod().Name, insertAt, "End"); return(insertAt); }
internal static void Add_TP_Workspaces( XlHlp.XlLocation insertAt, Options_AZDO_TFS options, Workspace[] workSpaces) { Int64 startTicks = Log.APPLICATION("Enter", Common.LOG_CATEGORY); foreach (Workspace workspace in workSpaces) { insertAt.ClearOffsets(); // Keep in same order with headers, supra. XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), workspace.Computer); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), workspace.Name); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), workspace.OwnerDisplayName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), workspace.OwnerName); //ExcelHlp.AddContentToCell(rngOutput.Offset[currentRow, col++], workspace.DisambiguatedDisplayName); //ExcelHlp.AddContentToCell(rngOutput.Offset[currentRow, col++], workspace.DisplayName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), workspace.LastAccessDate.ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), workspace.Comment); //ExcelHlp.AddContentToCell(rngOutput.Offset[XlLocation.Rows, col++], workspace.QualifiedName); insertAt.IncrementRows(); } Log.APPLICATION("Exit", Common.LOG_CATEGORY, startTicks); }
private XlHlp.XlLocation DisplayListOf_ContentTypes(XlHlp.XlLocation insertAt, ContentTypeCollection contentTypes, bool displayDataOnly, string tableSuffix) { XlHlp.DisplayInWatchWindow(System.Reflection.MethodInfo.GetCurrentMethod().Name, insertAt); Worksheet ws = insertAt.workSheet; if (!displayDataOnly) { insertAt.MarkStart(XlHlp.MarkType.GroupTable); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 40, "Name"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 30, "Group"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 15, "Id"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 20, "SchemaXml"); insertAt.IncrementRows(); } foreach (var cType in contentTypes) { insertAt.ClearOffsets(); XlHlp.AddContentToCell(insertAt.AddOffsetColumn(), cType.Name); XlHlp.AddContentToCell(insertAt.AddOffsetColumn(), cType.Group); XlHlp.AddContentToCell(insertAt.AddOffsetColumn(), cType.Id.ToString()); XlHlp.AddContentToCell(insertAt.AddOffsetColumn(), cType.SchemaXml); insertAt.IncrementRows(); } XlHlp.DisplayInWatchWindow(System.Reflection.MethodInfo.GetCurrentMethod().Name, insertAt, "End"); return(insertAt); }
internal static void Add_TP_Shelvesets( XlHlp.XlLocation insertAt, Options_AZDO_TFS options, Shelveset[] shelvesets) { Int64 startTicks = Log.APPLICATION("Enter", Common.LOG_CATEGORY); try { foreach (Shelveset item in shelvesets) { insertAt.ClearOffsets(); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), item.OwnerDisplayName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), item.OwnerName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), item.Name); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), item.CreationDate.ToString()); //ExcelHlp.AddContentToCell(insertAt.AddOffsetColumn(), item.DisplayName); //ExcelHlp.AddContentToCell(insertAt.AddOffsetColumn(), item.QualifiedName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), item.CheckinNote.ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), item.Comment); insertAt.IncrementRows(); } } catch (Exception ex) { string msg = string.Format("{0} - {1}", "TP", ex.ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), msg); } Log.APPLICATION("Exit", Common.LOG_CATEGORY, startTicks); }
private XlHlp.XlLocation DisplayListOf_Libraries(XlHlp.XlLocation insertAt, IEnumerable <List> libraries, bool displayDataOnly, string tableSuffix) { long startTicks = XlHlp.DisplayInWatchWindow(insertAt); Worksheet ws = insertAt.workSheet; if (!displayDataOnly) { insertAt.MarkStart(XlHlp.MarkType.GroupTable); XlHlp.AddColumnHeaderToSheetX(insertAt.AddOffsetColumnX(), 40, "Title"); XlHlp.AddColumnHeaderToSheetX(insertAt.AddOffsetColumnX(), 15, "Id"); XlHlp.AddColumnHeaderToSheetX(insertAt.AddOffsetColumnX(), 20, "SchemaXml"); insertAt.IncrementRows(); } foreach (var library in libraries) { insertAt.ClearOffsets(); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), library.Title); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), library.Id.ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), library.SchemaXml); insertAt.IncrementRows(); } XlHlp.DisplayInWatchWindow(insertAt, startTicks, "End"); return(insertAt); }
internal static void Add_TP_Developers( XlHlp.XlLocation insertAt, Options_AZDO_TFS options, string teamProjectName, SortedDictionary <string, int> developers, SortedDictionary <string, DateTime> developersLatestDate, SortedDictionary <string, DateTime> developersEarliestDate) { Int64 startTicks = Log.APPLICATION("Enter", Common.LOG_CATEGORY); foreach (string developer in developers.Keys) { insertAt.ClearOffsets(); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), teamProjectName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), developer); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), developers[developer].ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), developersEarliestDate[developer].ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), developersLatestDate[developer].ToString()); insertAt.IncrementRows(); } Log.APPLICATION("Exit", Common.LOG_CATEGORY, startTicks); }
internal static void CreateWS_All_TPC_LastChangeset(Options_AZDO_TFS options, VersionControlServer versionControlServer) { Int64 startTicks = Log.APPLICATION("Enter", Common.LOG_CATEGORY); try { XlHlp.XlLocation insertAt = CreateNewWorksheet(string.Format("{0}_{1}", "All_TPC", "LastChangeset"), options); XlHlp.AddLabeledInfoX(insertAt.AddRowX(), "Last Changeset All TeamProjects", AzureDevOpsExplorer.Presentation.Views.Server.TfsTeamProjectCollection.Name); insertAt.MarkStart(XlHlp.MarkType.GroupTable); Header_VersionControlServer.Add_Changesets(insertAt); //Body_VersionControlServer.Add_Changesets(insertAt, options, versionControlServer); foreach (var teamProjectName in options.TeamProjects) { insertAt.ClearOffsets(); long loopTicks = Log.Trace($"Processing {teamProjectName}", Common.PROJECT_NAME); TeamProject teamProject = VNCTFS.Helper.Get_TeamProject(versionControlServer, teamProjectName.Trim()); if (teamProject != null) { Globals.ThisAddIn.Application.StatusBar = $"Processing {teamProject.Name}"; Body_VersionControlServer.Add_TP_Changesets(insertAt, options, Presentation.Views.Server.VersionControlServer, teamProject); AZDOHelper.ProcessLoopDelay(options); } else { XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), teamProjectName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), "No VCS Project"); insertAt.IncrementRows(); } Log.Trace($"EndProcessing {teamProjectName}", Common.PROJECT_NAME, loopTicks); } insertAt.MarkEnd(XlHlp.MarkType.GroupTable, string.Format("tbl_{0}", insertAt.workSheet.Name)); insertAt.Group(insertAt.OrientVertical, hide: true); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } Log.APPLICATION("Exit", Common.LOG_CATEGORY, startTicks); }
internal static void Add_TP_Teams( XlHlp.XlLocation insertAt, Options_AZDO_TFS options, VersionControlServer versionControlServer, TeamProject teamProject, IEnumerable <TeamFoundationTeam> allTeams, TeamFoundationTeam defaultTeam) { Int64 startTicks = Log.APPLICATION("Enter", Common.LOG_CATEGORY); foreach (var team in allTeams.OrderBy(team => team.Name)) { insertAt.ClearOffsets(); TeamFoundationIdentity[] teamMembers = team.GetMembers(versionControlServer.TeamProjectCollection, MembershipQuery.Expanded); foreach (var member in teamMembers.OrderBy(m => m.UniqueName)) { insertAt.ClearOffsets(); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), teamProject.Name); // Team XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), team.Name); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), team.Description); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), defaultTeam.Name.Equals(team.Name) ? "*" : ""); // Members XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), member.DisplayName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), member.UniqueName); insertAt.IncrementRows(); } } Log.APPLICATION("Exit", Common.LOG_CATEGORY, startTicks); }
internal static void Add_BuildDefinitions(XlHlp.XlLocation insertAt, Options_AZDO_TFS options, IBuildServer buildServer, TeamProject teamProject) { Int64 startTicks = Log.APPLICATION("Enter", Common.LOG_CATEGORY); try { var buildDefinitions = buildServer.QueryBuildDefinitions(teamProject.Name); foreach (IBuildDefinition buildDef in buildDefinitions) { insertAt.ClearOffsets(); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", teamProject.Name)); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", buildDef.Name)); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", buildDef.Description)); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", buildDef.QueueStatus)); insertAt.IncrementRows(); } } catch (Exception ex) { insertAt.ClearOffsets(); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", teamProject.Name)); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", "<N/A>")); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", "<N/A>")); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", "<N/A>")); insertAt.IncrementRows(); } Log.APPLICATION("Exit", Common.LOG_CATEGORY, startTicks); }
internal static void Add_BuildServiceHosts(XlHlp.XlLocation insertAt, Options_AZDO_TFS options, IBuildServer buildServer, TeamProject teamProject) { Int64 startTicks = Log.APPLICATION("Enter", Common.LOG_CATEGORY); var buildServiceHosts = buildServer.QueryBuildServiceHosts("*"); foreach (IBuildServiceHost buildServiceHost in buildServiceHosts) { insertAt.ClearOffsets(); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", buildServiceHost.Name)); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", buildServiceHost.Status)); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", buildServiceHost.StatusChangedOn)); insertAt.IncrementRows(); } Log.APPLICATION("Exit", Common.LOG_CATEGORY, startTicks); }
internal static void Add_BuildControllers(XlHlp.XlLocation insertAt, Options_AZDO_TFS options, IBuildServer buildServer, TeamProject teamProject) { Int64 startTicks = Log.APPLICATION("Enter", Common.LOG_CATEGORY); var buildControllers = buildServer.QueryBuildControllers(); foreach (IBuildController buildController in buildControllers) { insertAt.ClearOffsets(); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", buildController.Name)); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", buildController.Description)); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", buildController.Enabled)); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", buildController.Agents.Count)); insertAt.IncrementRows(); } Log.APPLICATION("Exit", Common.LOG_CATEGORY, startTicks); }
internal static void Add_BuildProcessTemplates(XlHlp.XlLocation insertAt, Options_AZDO_TFS options, IBuildServer buildServer, TeamProject teamProject) { Int64 startTicks = Log.APPLICATION("Enter", Common.LOG_CATEGORY); var processTemplates = buildServer.QueryProcessTemplates(teamProject.Name); foreach (IProcessTemplate processTemplate in processTemplates) { insertAt.ClearOffsets(); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", processTemplate.Id)); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", processTemplate.Description)); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", processTemplate.TemplateType)); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", processTemplate.Version)); insertAt.IncrementRows(); } Log.APPLICATION("Exit", Common.LOG_CATEGORY, startTicks); }
internal static void Add_Builds(XlHlp.XlLocation insertAt, Options_AZDO_TFS options, IBuildServer buildServer, TeamProject teamProject) { Int64 startTicks = Log.APPLICATION("Enter", Common.LOG_CATEGORY); var builds = buildServer.QueryBuilds(teamProject.Name); foreach (IBuildDetail buildDetail in builds) { insertAt.ClearOffsets(); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", buildDetail.BuildController.Name)); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", buildDetail.LabelName)); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", buildDetail.StartTime)); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", buildDetail.FinishTime)); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), string.Format("{0}", buildDetail.BuildFinished)); insertAt.IncrementRows(); } Log.APPLICATION("Exit", Common.LOG_CATEGORY, startTicks); }
internal static XlHlp.XlLocation DisplayListOf_TeamProjects(XlHlp.XlLocation insertAt, ReadOnlyCollection <CatalogNode> projectNodes, bool displayDataOnly, string tableSuffix) { long startTicks = XlHlp.DisplayInWatchWindow(insertAt); if (!displayDataOnly) { insertAt.MarkStart(XlHlp.MarkType.GroupTable); //XlHlp.AddTitledInfo(insertAt.AddRow(), "Name", teamProjects.Count.ToString()); //XlHlp.AddContentToCell(insertAt.AddOffsetColumn(), Name, 12, XlHlp.MakeBold.Yes); XlHlp.AddColumnHeaderToSheetX(insertAt.AddOffsetColumnX(), 25, "DisplayName"); XlHlp.AddColumnHeaderToSheetX(insertAt.AddOffsetColumnX(), 35, "Description"); XlHlp.AddColumnHeaderToSheetX(insertAt.AddOffsetColumnX(), 35, "Identifier"); XlHlp.AddColumnHeaderToSheetX(insertAt.AddOffsetColumnX(), 35, "ProjectId"); //XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 25, "ProjectName", 12); XlHlp.AddColumnHeaderToSheetX(insertAt.AddOffsetColumnX(), 25, "ProjectState"); XlHlp.AddColumnHeaderToSheetX(insertAt.AddOffsetColumnX(), 62, "ProjectUri"); XlHlp.AddColumnHeaderToSheetX(insertAt.AddOffsetColumnX(), 10, "Tfvc Enabled"); XlHlp.AddColumnHeaderToSheetX(insertAt.AddOffsetColumnX(), 25, "SCC"); //XlHlp.AddTitledInfo(insertAt.AddRow(2), "TP Name", teamProject.Name); //XlHlp.AddTitledInfo(insertAt.AddRow(2), "AbsoluteUri", teamProject.ArtifactUri.AbsoluteUri); //XlHlp.AddTitledInfo(insertAt.AddRow(2), "ServerItem", teamProject.ServerItem); //XlHlp.AddTitledInfo(insertAt.AddRow(2), "VCS ServerQuid", teamProject.VersionControlServer.ServerGuid.ToString()); insertAt.IncrementRows(); } // The columns in this method need to be kept in sync with CreateTeamProjectsInfo() foreach (CatalogNode projectNode in projectNodes.OrderBy(tp => tp.Resource.DisplayName)) { insertAt.ClearOffsets(); try { XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), projectNode.Resource.DisplayName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), projectNode.Resource.Description); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), projectNode.Resource.Identifier.ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), projectNode.Resource.Properties["ProjectId"]); //XlHlp.AddContentToCell(insertAt.AddOffsetColumn(), projectNode.Resource.Properties["ProjectName"]); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), projectNode.Resource.Properties["ProjectState"]); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), projectNode.Resource.Properties["ProjectUri"]); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), projectNode.Resource.Properties["SourceControlTfvcEnabled"]); string sccType = "??"; if (projectNode.Resource.Properties.Keys.Contains("SourceControlCapabilityFlags")) { switch (int.Parse(projectNode.Resource.Properties["SourceControlCapabilityFlags"])) { case 0: sccType = "NONE"; break; case 1: sccType = "TFS"; break; case 2: sccType = "GIT"; break; case 3: sccType = "TFS/GIT"; break; default: break; } } XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), sccType); } catch (Exception ex) { } //projectNode.FullPath // projectNode.Resource.Description // projectNode.Resource.Identifier insertAt.IncrementRows(); } if (!displayDataOnly) { insertAt.MarkEnd(XlHlp.MarkType.GroupTable, string.Format("tblTP_{0}", tableSuffix)); insertAt.Group(insertAt.OrientVertical, hide: true); } XlHlp.DisplayInWatchWindow(insertAt, startTicks, "End"); return(insertAt); }
internal static XlHlp.XlLocation Add_Members( XlHlp.XlLocation insertAt, Options_AZDO_TFS options) { long startTicks = XlHlp.DisplayInWatchWindow(insertAt); TeamFoundationIdentity everyone = AzureDevOpsExplorer.Presentation.Views.Server.IdentityManagementService.ReadIdentity( GroupWellKnownDescriptors.EveryoneGroup, MembershipQuery.Direct, ReadIdentityOptions.None); TeamFoundationIdentity licensees = AzureDevOpsExplorer.Presentation.Views.Server.IdentityManagementService.ReadIdentity( GroupWellKnownDescriptors.LicenseesGroup, MembershipQuery.Direct, ReadIdentityOptions.None); TeamFoundationIdentity namespaceAdministrators = AzureDevOpsExplorer.Presentation.Views.Server.IdentityManagementService.ReadIdentity( GroupWellKnownDescriptors.NamespaceAdministratorsGroup, MembershipQuery.Direct, ReadIdentityOptions.None); TeamFoundationIdentity serviceUsers = AzureDevOpsExplorer.Presentation.Views.Server.IdentityManagementService.ReadIdentity( GroupWellKnownDescriptors.ServiceUsersGroup, MembershipQuery.Direct, ReadIdentityOptions.None); if (everyone != null) { insertAt.ClearOffsets(); XlHlp.AddLabeledInfo(insertAt.AddRow(), "Everyone", everyone.Members.Count().ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), everyone.DisplayName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), everyone.UniqueName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), everyone.Descriptor.IdentityType); insertAt.IncrementRows(); } else { XlHlp.AddLabeledInfo(insertAt.AddRow(), "Everyone", "null"); } if (licensees != null) { insertAt.ClearOffsets(); XlHlp.AddLabeledInfo(insertAt.AddRow(), "Licensees", licensees.Members.Count().ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), licensees.DisplayName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), licensees.UniqueName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), licensees.Descriptor.IdentityType); insertAt.IncrementRows(); } else { XlHlp.AddLabeledInfoX(insertAt.AddRowX(), "Licensees", "null"); } if (namespaceAdministrators != null) { insertAt.ClearOffsets(); XlHlp.AddLabeledInfo(insertAt.AddRow(), "NamespaceAdministrators", namespaceAdministrators.Members.Count().ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), namespaceAdministrators.DisplayName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), namespaceAdministrators.UniqueName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), namespaceAdministrators.Descriptor.IdentityType); insertAt.IncrementRows(); } else { XlHlp.AddLabeledInfo(insertAt.AddRow(), "NamespaceAdministrators", "null"); } if (serviceUsers != null) { insertAt.ClearOffsets(); XlHlp.AddLabeledInfo(insertAt.AddRow(), "ServiceUsers", serviceUsers.Members.Count().ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), serviceUsers.DisplayName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), serviceUsers.UniqueName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), serviceUsers.Descriptor.IdentityType); insertAt.IncrementRows(); } else { XlHlp.AddLabeledInfoX(insertAt.AddRowX(), "ServiceUsers", "null"); } TeamFoundationIdentity everyoneExpanded = AzureDevOpsExplorer.Presentation.Views.Server.IdentityManagementService.ReadIdentity( GroupWellKnownDescriptors.EveryoneGroup, MembershipQuery.Expanded, ReadIdentityOptions.None); TeamFoundationIdentity everyoneExpanded2 = AzureDevOpsExplorer.Presentation.Views.Server.IdentityManagementService.ReadIdentity( GroupWellKnownDescriptors.EveryoneGroup, MembershipQuery.Expanded, ReadIdentityOptions.IncludeReadFromSource); if (everyoneExpanded != null) { AZDOHelper.FetchIdentities(everyoneExpanded.Members, _Global_Groups, _Global_Identities); } TeamFoundationIdentity licenseesExpanded = AzureDevOpsExplorer.Presentation.Views.Server.IdentityManagementService.ReadIdentity( GroupWellKnownDescriptors.LicenseesGroup, MembershipQuery.Expanded, ReadIdentityOptions.None); if (licenseesExpanded != null) { AZDOHelper.FetchIdentities(licenseesExpanded.Members, _Global_Groups, _Global_Identities); } TeamFoundationIdentity serviceUsersExpanded = AzureDevOpsExplorer.Presentation.Views.Server.IdentityManagementService.ReadIdentity( GroupWellKnownDescriptors.ServiceUsersGroup, MembershipQuery.Expanded, ReadIdentityOptions.None); if (serviceUsersExpanded != null) { AZDOHelper.FetchIdentities(serviceUsersExpanded.Members, _Global_Groups, _Global_Identities); } TeamFoundationIdentity namespaceAdministratorsExpanded = AzureDevOpsExplorer.Presentation.Views.Server.IdentityManagementService.ReadIdentity( GroupWellKnownDescriptors.NamespaceAdministratorsGroup, MembershipQuery.Expanded, ReadIdentityOptions.None); if (namespaceAdministratorsExpanded != null) { AZDOHelper.FetchIdentities(namespaceAdministratorsExpanded.Members, _Global_Groups, _Global_Identities); } XlHlp.AddLabeledInfoX(insertAt.AddRowX(), "All Groups and Identities", "Lots"); insertAt.MarkStart(XlHlp.MarkType.GroupTable); // Keep in same order as fields, infra. // Group XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 50, "Top Level"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 50, "Group Identifier"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 50, "Group Identity"); // Members XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 15, "IsContainer"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 30, "TeamFoundationId"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 50, "DisplayName"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 80, "UniqueName"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 40, "IdentityType"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 40, "Identity"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 20, "UniqueUserId"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 10, "IsActive"); insertAt.IncrementRows(); foreach (TeamFoundationIdentity identity in _Global_Groups) { Globals.ThisAddIn.Application.StatusBar = "Processing " + identity.DisplayName; foreach (IdentityDescriptor member in identity.Members) { insertAt.ClearOffsets(); // Top Level string topLevel = ""; MatchCollection matches = Regex.Matches(identity.DisplayName, @"\[.*\]"); if (matches.Count == 1) { topLevel = matches[0].Value; } else { topLevel = identity.DisplayName; } XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), topLevel); // Group XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), identity.Descriptor.Identifier); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), identity.DisplayName); // Members XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), _Global_Identities[member].IsContainer.ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), _Global_Identities[member].TeamFoundationId.ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), _Global_Identities[member].DisplayName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), _Global_Identities[member].UniqueName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), _Global_Identities[member].Descriptor.IdentityType); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), _Global_Identities[member].Descriptor.Identifier); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), _Global_Identities[member].UniqueUserId.ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), _Global_Identities[member].IsActive.ToString()); insertAt.IncrementRows(); } } insertAt.MarkEnd(XlHlp.MarkType.GroupTable, string.Format("tblMembers_{0}", insertAt.workSheet.Name)); insertAt.Group(insertAt.OrientVertical); if (!insertAt.OrientVertical) { // Skip past the info just added. insertAt.SetLocation(insertAt.RowStart, insertAt.MarkEndColumn + 1); } XlHlp.DisplayInWatchWindow(insertAt, startTicks, "End"); return(insertAt); }
private XlHlp.XlLocation DisplayListOf_SiteColumns(XlHlp.XlLocation insertAt, IEnumerable <Field> siteColumns, bool displayDataOnly, string tableSuffix) { XlHlp.DisplayInWatchWindow(System.Reflection.MethodInfo.GetCurrentMethod().Name, insertAt); Worksheet ws = insertAt.workSheet; //<Field //ID="{56747800-D36E-4625-ABE3-B1BC74A7D5F8}" //Name="LowerValuesAreBetter" //StaticName="LowerValuesAreBetter" //Description="Whether lower is better or higher is better" //Group="Status Indicators" Type="Boolean" //DisplayName="Lower values are better" //SourceID="http://schemas.microsoft.com/sharepoint/v3" /> //<Field //Type="Lookup" //DisplayName="FA Page Type" //Required="FALSE" //EnforceUniqueValues="FALSE" //List="{b1d6a5ff-876b-4761-a05d-210038e31639}" //WebId="666b287f-2709-476b-a739-e1de9150fb37" //ShowField="Title" //UnlimitedLengthInDocumentLibrary="FALSE" //Group="Custom Columns" //ID="{3090abc3-526c-458f-9c65-302ad853db65}" //SourceID="{666b287f-2709-476b-a739-e1de9150fb37}" //StaticName="FA_x0020_Page_x0020_Type" //Name="FA_x0020_Page_x0020_Type" /> if (!displayDataOnly) { insertAt.MarkStart(XlHlp.MarkType.GroupTable); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 40, "Title"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 40, "Name"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 40, "StaticName"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 40, "Description"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 30, "Group"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 15, "Id"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 15, "TypeAsString"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 20, "SchemaXml"); insertAt.IncrementRows(); } foreach (var field in siteColumns) { insertAt.ClearOffsets(); XlHlp.AddContentToCell(insertAt.AddOffsetColumn(), field.Title); XlHlp.AddContentToCell(insertAt.AddOffsetColumn(), field.Group); XlHlp.AddContentToCell(insertAt.AddOffsetColumn(), field.Id.ToString()); XlHlp.AddContentToCell(insertAt.AddOffsetColumn(), field.TypeAsString.ToString()); XlHlp.AddContentToCell(insertAt.AddOffsetColumn(), field.SchemaXml); insertAt.IncrementRows(); } XlHlp.DisplayInWatchWindow(System.Reflection.MethodInfo.GetCurrentMethod().Name, insertAt, "End"); return(insertAt); }
internal static void Add_TP_Changesets( XlHlp.XlLocation insertAt, Options_AZDO_TFS options, ICommonStructureService commonStructureService, bool listChanges, bool listWorkItems, IEnumerable history) { Int64 startTicks = Log.APPLICATION("Enter", Common.LOG_CATEGORY); foreach (Changeset changeset in history) { insertAt.ClearOffsets(); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), changeset.ChangesetId.ToString()); //XlHlp.AddContentToCell(insertAt.AddOffsetColumn(), changeset.CheckinNote.ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), changeset.Committer); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), changeset.CommitterDisplayName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), changeset.Owner); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), changeset.OwnerDisplayName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), changeset.CreationDate.ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), changeset.CheckinNote.ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), changeset.Comment); //XlHlp.AddContentToCell(insertAt.AddOffsetColumn(), changeset.AssociatedWorkItems.Count().ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), changeset.Changes.Count().ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), changeset.WorkItems.Count().ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), changeset.AssociatedWorkItems.Count().ToString()); insertAt.IncrementRows(); if (listChanges) { insertAt.IncrementColumns(); foreach (Change change in changeset.Changes) { try { XlHlp.AddContentToCell(insertAt.AddRowX(1), Section_VersionControlServer.GetChangeInfo(change)); //XlHlp.AddContentToCell(insertAt.AddRow(), GetIterationInfo(workItem)); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } insertAt.DecrementColumns(); } if (listWorkItems) { insertAt.IncrementColumns(); foreach (WorkItem workItem in changeset.WorkItems) { try { XlHlp.AddContentToCell(insertAt.AddRowX(1), Section_VersionControlServer.GetWorkItemInfo(workItem)); XlHlp.AddContentToCell(insertAt.AddRowX(1), Section_VersionControlServer.GetIterationInfo(workItem, commonStructureService)); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } insertAt.DecrementColumns(); } } Log.APPLICATION("Exit", Common.LOG_CATEGORY, startTicks); }
internal static XlHlp.XlLocation Add_Members( XlHlp.XlLocation insertAt, TeamProject teamProject) { long startTicks = XlHlp.DisplayInWatchWindow(insertAt); try { int currentRows = insertAt.RowsAdded; // Save the location of the count so we can update later after have traversed all items. Range rngTitle = insertAt.GetCurrentRange(); if (insertAt.OrientVertical) { XlHlp.AddSectionInfo(insertAt.AddRow(), "Members Group", ""); } else { XlHlp.AddSectionInfo(insertAt.AddRow(), "Members Group", "", orientation: XlOrientation.xlUpward); insertAt.IncrementColumns(); } TeamFoundationIdentity[] projectGroups = AzureDevOpsExplorer.Presentation.Views.Server.IdentityManagementService.ListApplicationGroups( teamProject.ArtifactUri.AbsoluteUri, ReadIdentityOptions.None); Dictionary <IdentityDescriptor, object> descriptorSet = new Dictionary <IdentityDescriptor, object>(IdentityDescriptorComparer.Instance); foreach (TeamFoundationIdentity projectGroup in projectGroups) { descriptorSet[projectGroup.Descriptor] = projectGroup.Descriptor; } // Expanded membership of project groups projectGroups = AzureDevOpsExplorer.Presentation.Views.Server.IdentityManagementService.ReadIdentities(descriptorSet.Keys.ToArray(), MembershipQuery.Expanded, ReadIdentityOptions.None); // Collect all descriptors foreach (TeamFoundationIdentity projectGroup in projectGroups) { foreach (IdentityDescriptor mem in projectGroup.Members) { descriptorSet[mem] = mem; } } // NOTE(crhodes) // Might need to ensure that _Global_Groups and _Global_Identities already populated. if (Section_TeamProjectCollection._Global_Identities.Count == 0) { TeamFoundationIdentity everyoneExpanded = AzureDevOpsExplorer.Presentation.Views.Server.IdentityManagementService.ReadIdentity( GroupWellKnownDescriptors.EveryoneGroup, MembershipQuery.Expanded, ReadIdentityOptions.None); AZDOHelper.FetchIdentities(everyoneExpanded.Members, Section_TeamProjectCollection._Global_Groups, Section_TeamProjectCollection._Global_Identities); } _TeamProject_Groups.Clear(); _TeamProject_Identities.Clear(); AZDOHelper.FetchIdentities(descriptorSet.Keys.ToArray(), _TeamProject_Groups, _TeamProject_Identities); insertAt.MarkStart(XlHlp.MarkType.GroupTable); // Keep in same order as fields, infra. // Group XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 50, "Identifier"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 50, "Identity"); // Members XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 15, "IsContainer"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 50, "DisplayName"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 80, "UniqueName"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 40, "IdentityType"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 20, "UniqueUserId"); XlHlp.AddColumnHeaderToSheet(insertAt.AddOffsetColumn(), 10, "IsActive"); insertAt.IncrementRows(); foreach (TeamFoundationIdentity identity in _TeamProject_Groups) { foreach (IdentityDescriptor member in identity.Members) { insertAt.ClearOffsets(); try { // Group XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), identity.Descriptor.Identifier); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), identity.DisplayName); // Members // NOTE(crhodes) // This line is throwing exception. Why? XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), Section_TeamProjectCollection._Global_Identities[member].IsContainer.ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), Section_TeamProjectCollection._Global_Identities[member].DisplayName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), Section_TeamProjectCollection._Global_Identities[member].UniqueName); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), Section_TeamProjectCollection._Global_Identities[member].Descriptor.IdentityType); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), Section_TeamProjectCollection._Global_Identities[member].UniqueUserId.ToString()); XlHlp.AddOffsetContentToCell(insertAt.AddOffsetColumn(), Section_TeamProjectCollection._Global_Identities[member].IsActive.ToString()); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } insertAt.IncrementRows(); } } insertAt.MarkEnd(XlHlp.MarkType.GroupTable, string.Format("tblTPMembers_{0}", insertAt.workSheet.Name)); insertAt.Group(insertAt.OrientVertical); // Update counts. -2 covers Header and Table Column Header if (insertAt.OrientVertical) { XlHlp.AddLabeledInfoX(rngTitle, "Members Group", (insertAt.RowsAdded - currentRows - 2).ToString()); } else { XlHlp.AddLabeledInfoX(rngTitle, "Members Group", (insertAt.RowsAdded - currentRows - 2).ToString(), orientation: XlOrientation.xlUpward); } insertAt.EndSectionAndSetNextLocation(insertAt.OrientVertical); //insertAt.AddRow(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } XlHlp.DisplayInWatchWindow(insertAt, startTicks, "End"); return(insertAt); }