//public static IEnumerable<List> Get_DocumentLibraries(ClientContext ctx, Web web) //{ // var alllists = web.Lists; // IEnumerable<List> doclibs = ctx.LoadQuery(alllists.Where // (list => list.BaseType == BaseType.DocumentLibrary) // ); // ctx.ExecuteQuery(); // return doclibs; //} private XlHlp.XlLocation AddSection_Libraries(XlHlp.XlLocation insertAt, ClientContext ctx, Web web) { long startTicks = XlHlp.DisplayInWatchWindow(insertAt); if (insertAt.OrientVertical) { XlHlp.AddLabeledInfoX(insertAt.AddRowX(), "Libraries", web.Title); } else { XlHlp.AddLabeledInfoX(insertAt.AddRowX(), "Libraries", web.Title, orientation: XlOrientation.xlUpward); insertAt.IncrementColumns(); } IEnumerable <List> doclibs = VNC.SP.Helper.GetDocumentLibraries(ctx, web); insertAt.MarkStart(XlHlp.MarkType.GroupTable); insertAt = DisplayListOf_Libraries(insertAt, doclibs, false, "OneLevel"); insertAt.MarkEnd(XlHlp.MarkType.GroupTable, string.Format("tblLibraries_{0}", web.Title)); insertAt.Group(insertAt.OrientVertical, hide: true); insertAt.EndSectionAndSetNextLocation(insertAt.OrientVertical); XlHlp.DisplayInWatchWindow(insertAt, startTicks, "End"); return(insertAt); }
internal static XlHlp.XlLocation AddSection_ConfigurationServer_Info( XlHlp.XlLocation insertAt, TfsConfigurationServer configurationServer) { insertAt.MarkStart(XlHlp.MarkType.None); XlHlp.AddLabeledInfo(insertAt.AddRow(2), "Name:", configurationServer.Name); XlHlp.AddLabeledInfo(insertAt.AddRow(2), "Culture:", configurationServer.Culture.DisplayName); XlHlp.AddLabeledInfo(insertAt.AddRow(2), "InstanceId:", configurationServer.InstanceId.ToString()); XlHlp.AddLabeledInfo(insertAt.AddRow(2), "ServerCapabilities:", configurationServer.ServerCapabilities.ToString()); XlHlp.AddLabeledInfo(insertAt.AddRow(2), "SessionId:", configurationServer.SessionId.ToString()); XlHlp.AddLabeledInfo(insertAt.AddRow(2), "TimeZone:", configurationServer.TimeZone.ToString()); XlHlp.AddLabeledInfo(insertAt.AddRow(2), "UICulture", configurationServer.UICulture.ToString()); XlHlp.AddLabeledInfo(insertAt.AddRow(2), "Uri", configurationServer.Uri.ToString()); XlHlp.AddLabeledInfo(insertAt.AddRow(2), "AuthorizedIdentity:", configurationServer.AuthorizedIdentity.DisplayName); XlHlp.AddLabeledInfo(insertAt.AddRow(2), "CatalogNode:", configurationServer.CatalogNode.FullPath); XlHlp.AddLabeledInfo(insertAt.AddRow(2), "HasAuthenticated:", configurationServer.HasAuthenticated.ToString()); XlHlp.AddLabeledInfo(insertAt.AddRow(2), "IsHostedServer:", configurationServer.IsHostedServer.ToString()); XlHlp.AddLabeledInfo(insertAt.AddRow(2), "ClientCacheDirectoryForInstance:", configurationServer.ClientCacheDirectoryForInstance); XlHlp.AddLabeledInfo(insertAt.AddRow(2), "ClientCacheDirectoryForUser:", configurationServer.ClientCacheDirectoryForUser); insertAt.MarkEnd(XlHlp.MarkType.None); if (!insertAt.OrientVertical) { // Skip past the info just added. insertAt.SetLocation(insertAt.RowStart, insertAt.MarkEndColumn + 1); } return(insertAt); }
//private static IEnumerable<List> Get_Lists(ClientContext ctx, Web web) //{ // var alllists = web.Lists; // IEnumerable<List> lists = ctx.LoadQuery(alllists.Where // (list => list.BaseType == BaseType.GenericList) // ); // ctx.ExecuteQuery(); // return lists; //} private XlHlp.XlLocation AddSection_Lists(XlHlp.XlLocation insertAt, ClientContext ctx, Web web) { XlHlp.DisplayInWatchWindow(System.Reflection.MethodInfo.GetCurrentMethod().Name, insertAt); if (insertAt.OrientVertical) { XlHlp.AddTitledInfo(insertAt.AddRow(), "Lists", web.Title); } else { XlHlp.AddTitledInfo(insertAt.AddRow(), "Lists", web.Title, orientation: XlOrientation.xlUpward); insertAt.IncrementColumns(); } IEnumerable <List> lists = VNCSP.Helper.GetLists(ctx, web); insertAt.MarkStart(XlHlp.MarkType.GroupTable); insertAt = DisplayListOf_Lists(insertAt, lists, false, "OneLevel"); insertAt.MarkEnd(XlHlp.MarkType.GroupTable, string.Format("tblLists_{0}", web.Title)); insertAt.Group(insertAt.OrientVertical, hide: true); insertAt.EndSectionAndSetNextLocation(insertAt.OrientVertical); XlHlp.DisplayInWatchWindow(System.Reflection.MethodInfo.GetCurrentMethod().Name, insertAt, "End"); return(insertAt); }
internal static XlHlp.XlLocation Add_Info( XlHlp.XlLocation insertAt, TeamProject teamProject) { long startTicks = XlHlp.DisplayInWatchWindow(insertAt); insertAt.MarkStart(); XlHlp.AddLabeledInfo(insertAt.AddRow(2), "TP Name", teamProject.Name); XlHlp.AddLabeledInfo(insertAt.AddRow(2), "AbsoluteUri", teamProject.ArtifactUri.AbsoluteUri); XlHlp.AddLabeledInfo(insertAt.AddRow(2), "ServerItem", teamProject.ServerItem); XlHlp.AddLabeledInfo(insertAt.AddRow(2), "VCS ServerGuid", teamProject.VersionControlServer.ServerGuid.ToString()); // TODO(crhodes) // What else can we get here? // Capabilities // Template? // Creation Date? insertAt.MarkEnd(); if (!insertAt.OrientVertical) { // Skip past the info just added. insertAt.SetLocation(insertAt.RowStart, insertAt.MarkEndColumn + 1); } XlHlp.DisplayInWatchWindow(insertAt, startTicks, "End"); return(insertAt); }
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 XlHlp.XlLocation ProcessAddSectionCommand_BuildServer( XlHlp.XlLocation insertAt, IBuildServer buildServer, TeamProject teamProject, string sectionTitle, RequestHandlers.ProcessAddHeaderCommand addHeaderCommand, ProcessAddBodyCommand_BS addBodyCommand, string tablePrefix) { long startTicks = XlHlp.DisplayInWatchWindow(insertAt); try { // Save the location of the title so we can update later after have traversed all items. Range rngTitle = insertAt.GetCurrentRange(); if (insertAt.OrientVertical) { XlHlp.AddSectionInfo(insertAt.AddRow(), sectionTitle, ""); } else { XlHlp.AddSectionInfo(insertAt.AddRow(), sectionTitle, "", orientation: XlOrientation.xlUpward); insertAt.IncrementColumns(); } insertAt.MarkStart(XlHlp.MarkType.GroupTable); addHeaderCommand(insertAt); addBodyCommand(insertAt, buildServer, teamProject); insertAt.MarkEnd(XlHlp.MarkType.GroupTable, string.Format("{0}_{1}", tablePrefix, teamProject.Name)); insertAt.Group(insertAt.OrientVertical); insertAt.EndSectionAndSetNextLocation(insertAt.OrientVertical); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } XlHlp.DisplayInWatchWindow("End: " + DateTime.Now); XlHlp.DisplayInWatchWindow(insertAt, startTicks, "End"); return(insertAt); }
private XlHlp.XlLocation AddSection_SiteColumns(XlHlp.XlLocation insertAt, ClientContext ctx, Web web) { XlHlp.DisplayInWatchWindow(System.Reflection.MethodInfo.GetCurrentMethod().Name, insertAt); if (insertAt.OrientVertical) { XlHlp.AddTitledInfo(insertAt.AddRow(), "SiteColumns", web.Title); } else { XlHlp.AddTitledInfo(insertAt.AddRow(), "SiteColumns", web.Title, orientation: XlOrientation.xlUpward); insertAt.IncrementColumns(); } var siteColumns = VNCSP.Helper.GetSiteColumns(ctx, web); //ctx.Load(web.Fields); //ctx.ExecuteQuery(); //var siteColumns = web.Fields; //ctx.ExecuteQuery(); insertAt.MarkStart(XlHlp.MarkType.GroupTable); insertAt = DisplayListOf_SiteColumns(insertAt, siteColumns, false, "OneLevel"); insertAt.MarkEnd(XlHlp.MarkType.GroupTable, string.Format("tblSiteColumns_{0}", web.Title)); insertAt.Group(insertAt.OrientVertical, hide: true); insertAt.EndSectionAndSetNextLocation(insertAt.OrientVertical); XlHlp.DisplayInWatchWindow(System.Reflection.MethodInfo.GetCurrentMethod().Name, insertAt, "End"); return(insertAt); }
private XlHlp.XlLocation AddSection_ContentTypes(XlHlp.XlLocation insertAt, ClientContext ctx, Web web) { XlHlp.DisplayInWatchWindow(System.Reflection.MethodInfo.GetCurrentMethod().Name, insertAt); if (insertAt.OrientVertical) { XlHlp.AddTitledInfo(insertAt.AddRow(), "ContentTypes", web.Title); } else { XlHlp.AddTitledInfo(insertAt.AddRow(), "ContentTypes", web.Title, orientation: XlOrientation.xlUpward); insertAt.IncrementColumns(); } ctx.Load(web.ContentTypes); ctx.ExecuteQuery(); //IEnumerable<List> cTypes = ctx.LoadQuery(allContentTypes.Where // (list => list.BaseType == BaseType.DocumentLibrary) // ); ctx.ExecuteQuery(); insertAt.MarkStart(XlHlp.MarkType.GroupTable); insertAt = DisplayListOf_ContentTypes(insertAt, web.ContentTypes, false, "Full"); insertAt.MarkEnd(XlHlp.MarkType.GroupTable, string.Format("tblContentTypes_{0}", web.Title)); insertAt.Group(insertAt.OrientVertical, hide: true); insertAt.EndSectionAndSetNextLocation(insertAt.OrientVertical); XlHlp.DisplayInWatchWindow(System.Reflection.MethodInfo.GetCurrentMethod().Name, insertAt, "End"); return(insertAt); }
//Workbooks.OpenText Filename:= _ //"C:\Customers\Aston Martin\AML_Logs\EaseWorks_0228.log", Origin:=437, _ //startRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ //ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False _ //, Space:=False, Other:=True, OtherChar:="|", FieldInfo:=Array(Array(1, 1 _ //), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _ //Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1)), _ //TrailingMinusNumbers:=True // With ActiveSheet.QueryTables.Add(Connection:= _ // "TEXT;C:\Customers\Aston Martin\AML_Logs\AMLViewEase.log", Destination:=Range _ // ("$B$5")) // .CommandType = 0 // .Name = "AMLViewEase" // .FieldNames = True // .RowNumbers = False // .FillAdjacentFormulas = False // .PreserveFormatting = True // .RefreshOnFileOpen = False // .RefreshStyle = xlInsertDeleteCells // .SavePassword = False // .SaveData = True // .AdjustColumnWidth = True // .RefreshPeriod = 0 // .TextFilePromptOnRefresh = False // .TextFilePlatform = 437 // .TextFileStartRow = 1 // .TextFileParseType = xlDelimited // .TextFileTextQualifier = xlTextQualifierDoubleQuote // .TextFileConsecutiveDelimiter = False // .TextFileTabDelimiter = False // .TextFileSemicolonDelimiter = False // .TextFileCommaDelimiter = False // .TextFileSpaceDelimiter = False // .TextFileOtherDelimiter = "|" // .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) // .TextFileTrailingMinusNumbers = True // .Refresh BackgroundQuery:=False //End With private void CreateLogWorkSheet(string fileName) { XlHlp.DisplayInWatchWindow(string.Format("{0}()", MethodBase.GetCurrentMethod().Name)); //string sheetName = XlHlp.SafeSheetName("Log-RenameMe"); //Worksheet ws = XlHlp.NewWorksheet(sheetName, beforeSheetName: "FIRST"); //XlHlp.XlLocation insertAt = new XlHlp.XlLocation(ws, row: 5, column: 2); Globals.ThisAddIn.Application.Workbooks.OpenText(Filename: fileName, StartRow: 1, DataType: XlTextParsingType.xlDelimited, Tab: false, Semicolon: false, Comma: false, Space: false, Other: true, OtherChar: "|"); Worksheet ws = Globals.ThisAddIn.Application.ActiveSheet; // Rows("1:1").Select // Selection.Insert Shift:= xlDown, CopyOrigin:= xlFormatFromLeftOrAbove // Columns("A:A").Select // Selection.Insert Shift:= xlToRight, CopyOrigin:= xlFormatFromLeftOrAbove Range rng = ws.Rows["1:1"]; rng.Insert(Shift: XlInsertShiftDirection.xlShiftDown, CopyOrigin: XlInsertFormatOrigin.xlFormatFromLeftOrAbove); rng.Insert(Shift: XlInsertShiftDirection.xlShiftDown, CopyOrigin: XlInsertFormatOrigin.xlFormatFromLeftOrAbove); rng.Insert(Shift: XlInsertShiftDirection.xlShiftDown, CopyOrigin: XlInsertFormatOrigin.xlFormatFromLeftOrAbove); rng.Insert(Shift: XlInsertShiftDirection.xlShiftDown, CopyOrigin: XlInsertFormatOrigin.xlFormatFromLeftOrAbove); rng.Insert(Shift: XlInsertShiftDirection.xlShiftDown, CopyOrigin: XlInsertFormatOrigin.xlFormatFromLeftOrAbove); rng = ws.Columns["A:A"]; rng.Insert(Shift: XlInsertShiftDirection.xlShiftToRight, CopyOrigin: XlInsertFormatOrigin.xlFormatFromLeftOrAbove); XlHlp.XlLocation insertAt = new XlHlp.XlLocation(ws, row: 5, column: 1); insertAt.MarkStart(XlHlp.MarkType.GroupTable); CreateLogWorkSheetHeader(insertAt); // Do some formatting. May want to pull this out into a separate method, FormatSheetColumns() if do more rng = ws.Columns["B:B"]; rng.NumberFormat = "m/d/yyyy h:mm:ss.000"; //insertAt.ClearOffsets(); rng = ws.Cells[5, 1]; Int32 lastRow = rng.SpecialCells(XlCellType.xlCellTypeLastCell).Row; Int32 lastColumn = rng.SpecialCells(XlCellType.xlCellTypeLastCell).Column; XlHlp.DisplayInWatchWindow(string.Format("{0}() row:({1}) col:({2})", MethodBase.GetCurrentMethod().Name, lastRow, lastColumn)); // TODO(crhodes) // This would be a good thing to add to ExcelUtilities // Add a row number to table so can resort if necessary. Table starts at 5, first data row at 6 for (int i = 6, rowNumber = 1; i <= lastRow; i++, rowNumber++) { ws.Cells[i, 1].Value = rowNumber; } insertAt.SetRow(lastRow + 1); insertAt.MarkEnd(VNC.AddinHelper.Excel.MarkType.GroupTable, string.Format("tbl_{0}", ws.Name)); rng = ws.Columns["E:K"]; rng.Columns.Group(); ws.Outline.SummaryColumn = XlSummaryColumn.xlSummaryOnLeft; ws.Outline.SummaryRow = XlSummaryRow.xlSummaryAbove; ws.Cells[6, 14].Select(); ws.Application.ActiveWindow.FreezePanes = true; SaveLogFile(ws.Application.ActiveWorkbook, fileName); //Selection.Columns.Group //Selection.Columns.Group //Range("D3").Select //ActiveSheet.Outline.ShowLevels RowLevels:= 0, ColumnLevels:= 3 //ActiveSheet.Outline.ShowLevels RowLevels:= 0, ColumnLevels:= 2 //ActiveSheet.Outline.ShowLevels RowLevels:= 0, ColumnLevels:= 1 //With ActiveSheet.Outline // .AutomaticStyles = False // .SummaryRow = xlAbove // .SummaryColumn = xlLeft //End With }
private static string CopyRowsToNewWorkSheet(Worksheet sourceWs, int startRow, int endRow, string sheetName) { sheetName = XlHlp.SafeSheetName(sheetName); Worksheet destinationWS = XlHlp.NewWorksheet(sheetName, afterSheetName: "LAST"); XlHlp.XlLocation insertAt = new XlHlp.XlLocation(destinationWS, row: 5, column: 1); insertAt.MarkStart(XlHlp.MarkType.GroupTable); CreateLogWorkSheetHeader(insertAt); insertAt.AddRowX(); // HACK(crhodes) // // There are 14 columns normally, grab five more just in case // We can do better than this by finding the last active column. // Extra columns can appear when an exception messes up the formatting of the log file. Range sourceRng; sourceRng = sourceWs.Range[sourceWs.Cells[startRow, 1], sourceWs.Cells[endRow, 19]]; //.Cells[startRow, 1]; sourceRng.Copy(); insertAt.GetCurrentRange().PasteSpecial(); destinationWS.Activate(); // Things come over messed up. Unfreeze //Globals.ThisAddIn.Application.ActiveWindow.FreezePanes = false; Range rng; rng = destinationWS.Cells[5, 1]; Int32 lastRow = rng.SpecialCells(XlCellType.xlCellTypeLastCell).Row; Int32 lastColumn = rng.SpecialCells(XlCellType.xlCellTypeLastCell).Column; XlHlp.DisplayInWatchWindow(string.Format("{0}() row:({1}) col:({2})", MethodBase.GetCurrentMethod().Name, lastRow, lastColumn)); insertAt.SetRow(lastRow + 1); insertAt.SetColumn(lastColumn); insertAt.MarkEnd(VNC.AddinHelper.Excel.MarkType.GroupTable, string.Format("tbl_{0}", destinationWS.Name)); //rng = destinationWS.Columns["E:K"]; //rng.Columns.Group(); destinationWS.Columns["E:K"].Columns.Group(); //destinationWS.Cells[6, 14].Select(); //destinationWS.Application.ActiveWindow.FreezePanes = true; // TODO(crhodes) // Figure out what to do to make outlining work. //sourceWs.Outline.SummaryColumn = XlSummaryColumn.xlSummaryOnLeft; //sourceWs.Outline.SummaryRow = XlSummaryRow.xlSummaryAbove; return(sheetName); }
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); }
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, 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); }