diff --git a/PROMS/VEPROMS User Interface/PROMSFixes.Sql b/PROMS/VEPROMS User Interface/PROMSFixes.Sql
index 7d2f6c38..6b6419bf 100644
--- a/PROMS/VEPROMS User Interface/PROMSFixes.Sql
+++ b/PROMS/VEPROMS User Interface/PROMSFixes.Sql
@@ -24264,6 +24264,129 @@ BEGIN
RETURN
END
+IF (@@Error = 0) PRINT 'Procedure Creation: [getUserAcessControl] Succeeded'
+ELSE PRINT 'Procedure Creation: [getUserAcessControl] Error on Creation'
+GO
+
+-- C2021-058 Admin Tool Purge Change History / C2025-052 Admin Tool Index Maintenance
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_PurgeChangeHistory]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
+ DROP PROCEDURE [vesp_PurgeChangeHistory];
+
+GO
+
+/****** Object: StoredProcedure [dbo].[vesp_PurgeChangeHistory] Script Date: 9/9/2025 6:51:42 AM ******/
+
+-- =============================================
+-- Author: Matthew Schill
+-- Create date: 09/09/2025
+-- Description: Admin Tool Purge Change History. Add the ability to remove audit records from Admin Tools.
+-- =============================================
+CREATE PROCEDURE [dbo].[vesp_PurgeChangeHistory]
+(
+ @dte AS datetime
+)
+AS
+BEGIN
+ Delete from Versions where DTS < @dte
+ Delete from DocumentAudits where DTS < @dte
+ delete from Figures where ROFSTID not in(select rofstid from Associations) and DTS < @dte
+ Delete from ROFSTs where ROFSTID not in(select rofstid from Associations) and DTS < @dte
+ delete from roimages where rodbid not in(select rodbid from rofsts) and DTS < @dte
+ delete from documents where docid not in(select docid from entries) and DTS < @dte
+ PRINT 'Phase 1'
+ delete from tblAnnotations where deletestatus != 0 and DTS < @dte
+ delete from drousages where docid in(select docid from tbldocuments where deletestatus != 0) and DTS < @dte
+ delete from tblEntries where deletestatus != 0 and DTS < @dte
+ delete from tblDocuments where deletestatus != 0 and DTS < @dte
+ delete from tblGrids where deletestatus != 0 and DTS < @dte
+ delete from tblImages where deletestatus != 0 and DTS < @dte
+ PRINT 'Phase 2'
+ delete from tblROUsages where deletestatus != 0 and DTS < @dte
+ delete from tblTransitions where deletestatus != 0 and DTS < @dte
+ delete from tblParts where deletestatus != 0 and DTS < @dte
+ delete from tblItems where deletestatus != 0 and ItemID Not IN (Select ItemID from Parts) and DTS < @dte
+ PRINT 'Purge Contents'
+ delete from tblContents where deletestatus != 0 and DTS < @dte
+ PRINT 'Phase 3'
+ delete from AnnotationAudits where DTS < @dte
+ delete from ContentAudits where DTS < @dte
+ delete from EntryAudits where DTS < @dte
+ delete from DocumentAudits where DTS < @dte
+ delete from GridAudits where DTS < @dte
+ delete from ImageAudits where DTS < @dte
+ PRINT 'Phase 4'
+ delete from ItemAudits where DTS < @dte
+ delete from PartAudits where DTS < @dte
+ delete from ROUsageAudits where DTS < @dte
+ delete from TransitionAudits where DTS < @dte
+
+ RETURN
+END
+
+IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_PurgeChangeHistory] Succeeded'
+ELSE PRINT 'Procedure Creation: [vesp_PurgeChangeHistory] Error on Creation'
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_IndexMaintenance]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
+ DROP PROCEDURE [vesp_IndexMaintenance];
+
+GO
+
+/****** Object: StoredProcedure [dbo].[vesp_IndexMaintenance] Script Date: 9/9/2025 7:54:42 AM ******/
+
+-- =============================================
+-- Author: Matthew Schill
+-- Create date: 09/09/2025
+-- Description: Rebuild all indexes in the db
+-- =============================================
+CREATE PROCEDURE [dbo].[vesp_IndexMaintenance]
+With Execute as Owner
+AS
+BEGIN
+
+ Exec sp_msforeachtable 'SET QUOTED_IDENTIFIER ON; ALTER INDEX ALL ON ? REBUILD'
+
+ RETURN
+END
+
+IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_IndexMaintenance] Succeeded'
+ELSE PRINT 'Procedure Creation: [vesp_IndexMaintenance] Error on Creation'
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetOtherActiveSessions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
+ DROP PROCEDURE [vesp_GetOtherActiveSessions];
+
+GO
+
+/****** Object: StoredProcedure [dbo].[vesp_GetOtherActiveSessions] Script Date: 9/10/2025 7:54:42 AM ******/
+
+-- =============================================
+-- Author: Matthew Schill
+-- Create date: 09/10/2025
+-- Description: Get active sessions by users other than the current user
+-- =============================================
+CREATE PROCEDURE [dbo].[vesp_GetOtherActiveSessions]
+(
+ @UsrID AS varchar(100)
+)
+AS
+BEGIN
+
+ SELECT
+ [UserID],
+ [DTSDtart],
+ [MachineName]
+ FROM [Sessions]
+ WHERE DTSEnd IS NULL AND UserID != @UsrID
+
+ RETURN
+END
+
+IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_GetOtherActiveSessions] Succeeded'
+ELSE PRINT 'Procedure Creation: [vesp_GetOtherActiveSessions] Error on Creation'
+GO
+
+
/*
---------------------------------------------------------------------------
| ADD New Code Before this Block |
@@ -24297,8 +24420,8 @@ BEGIN TRY -- Try Block
DECLARE @RevDate varchar(255)
DECLARE @RevDescription varchar(255)
- set @RevDate = '09/05/2025 7:00 AM'
- set @RevDescription = 'Added stored procedure for User Access Control Report'
+ set @RevDate = '09/16/2025 7:00 AM'
+ set @RevDescription = 'Added Purge Change History and Index Maintenance functions to Admin Tools'
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
diff --git a/PROMS/VEPROMS User Interface/frmBatchRefresh.Designer.cs b/PROMS/VEPROMS User Interface/frmBatchRefresh.Designer.cs
index a4e39c42..635d8516 100644
--- a/PROMS/VEPROMS User Interface/frmBatchRefresh.Designer.cs
+++ b/PROMS/VEPROMS User Interface/frmBatchRefresh.Designer.cs
@@ -52,24 +52,6 @@
this.expandableSplitter1 = new DevComponents.DotNetBar.ExpandableSplitter();
this.panelEx1 = new DevComponents.DotNetBar.PanelEx();
this.sideNav1 = new DevComponents.DotNetBar.Controls.SideNav();
- this.sideNavPanel4 = new DevComponents.DotNetBar.Controls.SideNavPanel();
- this.swDeleteFolder = new DevComponents.DotNetBar.Controls.SwitchButton();
- this.labelX13 = new DevComponents.DotNetBar.LabelX();
- this.swDeleteAnnotations = new DevComponents.DotNetBar.Controls.SwitchButton();
- this.labelX14 = new DevComponents.DotNetBar.LabelX();
- this.myTVdel = new System.Windows.Forms.TreeView();
- this.btnDeleteItems = new DevComponents.DotNetBar.ButtonX();
- this.sideNavPanel3 = new DevComponents.DotNetBar.Controls.SideNavPanel();
- this.swCheckROLinks = new DevComponents.DotNetBar.Controls.SwitchButton();
- this.labelX12 = new DevComponents.DotNetBar.LabelX();
- this.warningBox5 = new DevComponents.DotNetBar.Controls.WarningBox();
- this.line3 = new DevComponents.DotNetBar.Controls.Line();
- this.swUpdateROVals = new DevComponents.DotNetBar.Controls.SwitchButton();
- this.swRefreshTrans = new DevComponents.DotNetBar.Controls.SwitchButton();
- this.labelX11 = new DevComponents.DotNetBar.LabelX();
- this.labelX6 = new DevComponents.DotNetBar.LabelX();
- this.warningBox1 = new DevComponents.DotNetBar.Controls.WarningBox();
- this.btnFixLinks = new DevComponents.DotNetBar.ButtonX();
this.sideNavPanel2 = new DevComponents.DotNetBar.Controls.SideNavPanel();
this.swRefreshTblsForSrch = new DevComponents.DotNetBar.Controls.SwitchButton();
this.lblRefreshTblForSrch = new DevComponents.DotNetBar.LabelX();
@@ -86,10 +68,36 @@
this.labelX8 = new DevComponents.DotNetBar.LabelX();
this.line2 = new DevComponents.DotNetBar.Controls.Line();
this.btnRunRepair = new DevComponents.DotNetBar.ButtonX();
+ this.sideNavPanel4 = new DevComponents.DotNetBar.Controls.SideNavPanel();
+ this.swDeleteFolder = new DevComponents.DotNetBar.Controls.SwitchButton();
+ this.labelX13 = new DevComponents.DotNetBar.LabelX();
+ this.swDeleteAnnotations = new DevComponents.DotNetBar.Controls.SwitchButton();
+ this.labelX14 = new DevComponents.DotNetBar.LabelX();
+ this.myTVdel = new System.Windows.Forms.TreeView();
+ this.btnDeleteItems = new DevComponents.DotNetBar.ButtonX();
+ this.sideNavPanel5 = new DevComponents.DotNetBar.Controls.SideNavPanel();
+ this.btnIndexMaint = new DevComponents.DotNetBar.ButtonX();
+ this.itemPanel1 = new DevComponents.DotNetBar.PanelEx();
+ this.btnPurgeChange = new DevComponents.DotNetBar.ButtonX();
+ this.dtePurge = new System.Windows.Forms.DateTimePicker();
+ this.warningBox3 = new DevComponents.DotNetBar.Controls.WarningBox();
+ this.warningBox6 = new DevComponents.DotNetBar.Controls.WarningBox();
+ this.sideNavPanel3 = new DevComponents.DotNetBar.Controls.SideNavPanel();
+ this.swCheckROLinks = new DevComponents.DotNetBar.Controls.SwitchButton();
+ this.labelX12 = new DevComponents.DotNetBar.LabelX();
+ this.warningBox5 = new DevComponents.DotNetBar.Controls.WarningBox();
+ this.line3 = new DevComponents.DotNetBar.Controls.Line();
+ this.swUpdateROVals = new DevComponents.DotNetBar.Controls.SwitchButton();
+ this.swRefreshTrans = new DevComponents.DotNetBar.Controls.SwitchButton();
+ this.labelX11 = new DevComponents.DotNetBar.LabelX();
+ this.labelX6 = new DevComponents.DotNetBar.LabelX();
+ this.warningBox1 = new DevComponents.DotNetBar.Controls.WarningBox();
+ this.btnFixLinks = new DevComponents.DotNetBar.ButtonX();
this.sideNavItem1 = new DevComponents.DotNetBar.Controls.SideNavItem();
this.separator1 = new DevComponents.DotNetBar.Separator();
this.sideNavItmRepair = new DevComponents.DotNetBar.Controls.SideNavItem();
this.sideNavItmLinks = new DevComponents.DotNetBar.Controls.SideNavItem();
+ this.sideNavItmMaint = new DevComponents.DotNetBar.Controls.SideNavItem();
this.sideNavItmDelete = new DevComponents.DotNetBar.Controls.SideNavItem();
this.sideNavItmExit = new DevComponents.DotNetBar.Controls.SideNavItem();
this.panelEx4 = new DevComponents.DotNetBar.PanelEx();
@@ -112,9 +120,11 @@
this.pnlLater.SuspendLayout();
this.panelEx1.SuspendLayout();
this.sideNav1.SuspendLayout();
- this.sideNavPanel4.SuspendLayout();
- this.sideNavPanel3.SuspendLayout();
this.sideNavPanel2.SuspendLayout();
+ this.sideNavPanel4.SuspendLayout();
+ this.sideNavPanel5.SuspendLayout();
+ this.itemPanel1.SuspendLayout();
+ this.sideNavPanel3.SuspendLayout();
this.panelEx4.SuspendLayout();
this.SuspendLayout();
//
@@ -124,7 +134,7 @@
this.myTV.Dock = System.Windows.Forms.DockStyle.Bottom;
this.myTV.Location = new System.Drawing.Point(0, 230);
this.myTV.Name = "myTV";
- this.myTV.Size = new System.Drawing.Size(291, 310);
+ this.myTV.Size = new System.Drawing.Size(268, 310);
this.myTV.TabIndex = 4;
this.myTV.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.myTV_AfterCheck);
//
@@ -451,6 +461,7 @@
//
this.sideNav1.BackColor = System.Drawing.SystemColors.Control;
this.sideNav1.Controls.Add(this.sideNavPanel2);
+ this.sideNav1.Controls.Add(this.sideNavPanel5);
this.sideNav1.Controls.Add(this.sideNavPanel4);
this.sideNav1.Controls.Add(this.sideNavPanel3);
this.sideNav1.Dock = System.Windows.Forms.DockStyle.Fill;
@@ -461,6 +472,7 @@
this.separator1,
this.sideNavItmRepair,
this.sideNavItmLinks,
+ this.sideNavItmMaint,
this.sideNavItmDelete,
this.sideNavItmExit});
this.sideNav1.Location = new System.Drawing.Point(0, 0);
@@ -470,275 +482,6 @@
this.sideNav1.TabIndex = 3;
this.sideNav1.Text = "sideNav1";
//
- // sideNavPanel4
- //
- this.sideNavPanel4.Controls.Add(this.swDeleteFolder);
- this.sideNavPanel4.Controls.Add(this.labelX13);
- this.sideNavPanel4.Controls.Add(this.swDeleteAnnotations);
- this.sideNavPanel4.Controls.Add(this.labelX14);
- this.sideNavPanel4.Controls.Add(this.myTVdel);
- this.sideNavPanel4.Controls.Add(this.btnDeleteItems);
- this.sideNavPanel4.Dock = System.Windows.Forms.DockStyle.Fill;
- this.sideNavPanel4.Location = new System.Drawing.Point(81, 31);
- this.sideNavPanel4.MinimumSize = new System.Drawing.Size(0, 493);
- this.sideNavPanel4.Name = "sideNavPanel4";
- this.sideNavPanel4.Size = new System.Drawing.Size(299, 493);
- this.sideNavPanel4.TabIndex = 27;
- this.sideNavPanel4.Visible = false;
- //
- // swDeleteFolder
- //
- //
- //
- //
- this.swDeleteFolder.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
- this.swDeleteFolder.Location = new System.Drawing.Point(10, 43);
- this.swDeleteFolder.Name = "swDeleteFolder";
- this.swDeleteFolder.Size = new System.Drawing.Size(69, 22);
- this.swDeleteFolder.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
- this.superTooltip1.SetSuperTooltip(this.swDeleteFolder, new DevComponents.DotNetBar.SuperTooltipInfo("Delete Folders", "", resources.GetString("swDeleteFolder.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 140)));
- this.swDeleteFolder.SwitchClickTogglesValue = true;
- this.swDeleteFolder.TabIndex = 39;
- this.swDeleteFolder.ValueChanged += new System.EventHandler(this.swDeleteFolder_ValueChanged);
- //
- // labelX13
- //
- this.labelX13.BackColor = System.Drawing.Color.Transparent;
- //
- //
- //
- this.labelX13.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
- this.labelX13.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.labelX13.Location = new System.Drawing.Point(85, 42);
- this.labelX13.Name = "labelX13";
- this.labelX13.Size = new System.Drawing.Size(168, 22);
- this.superTooltip1.SetSuperTooltip(this.labelX13, new DevComponents.DotNetBar.SuperTooltipInfo("Delete Folders", "", resources.GetString("labelX13.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 140)));
- this.labelX13.TabIndex = 38;
- this.labelX13.Text = "Delete Folders";
- //
- // swDeleteAnnotations
- //
- //
- //
- //
- this.swDeleteAnnotations.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
- this.swDeleteAnnotations.Location = new System.Drawing.Point(10, 15);
- this.swDeleteAnnotations.Name = "swDeleteAnnotations";
- this.swDeleteAnnotations.Size = new System.Drawing.Size(69, 22);
- this.swDeleteAnnotations.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
- this.superTooltip1.SetSuperTooltip(this.swDeleteAnnotations, new DevComponents.DotNetBar.SuperTooltipInfo("Delete Annotations", "", resources.GetString("swDeleteAnnotations.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 155)));
- this.swDeleteAnnotations.SwitchClickTogglesValue = true;
- this.swDeleteAnnotations.TabIndex = 37;
- this.swDeleteAnnotations.Value = true;
- this.swDeleteAnnotations.ValueObject = "Y";
- this.swDeleteAnnotations.ValueChanged += new System.EventHandler(this.swDeleteAnnotations_ValueChanged);
- //
- // labelX14
- //
- this.labelX14.BackColor = System.Drawing.Color.Transparent;
- //
- //
- //
- this.labelX14.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
- this.labelX14.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.labelX14.Location = new System.Drawing.Point(85, 14);
- this.labelX14.Name = "labelX14";
- this.labelX14.Size = new System.Drawing.Size(186, 22);
- this.superTooltip1.SetSuperTooltip(this.labelX14, new DevComponents.DotNetBar.SuperTooltipInfo("Delete Annotations", "", resources.GetString("labelX14.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 155)));
- this.labelX14.TabIndex = 36;
- this.labelX14.Text = "Delete Annotations";
- //
- // myTVdel
- //
- this.myTVdel.CheckBoxes = true;
- this.myTVdel.Dock = System.Windows.Forms.DockStyle.Bottom;
- this.myTVdel.Location = new System.Drawing.Point(0, 126);
- this.myTVdel.Name = "myTVdel";
- this.myTVdel.Size = new System.Drawing.Size(299, 367);
- this.myTVdel.TabIndex = 34;
- this.myTVdel.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.myTV_AfterCheck);
- //
- // btnDeleteItems
- //
- this.btnDeleteItems.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
- this.btnDeleteItems.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.btnDeleteItems.Checked = true;
- this.btnDeleteItems.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
- this.btnDeleteItems.Location = new System.Drawing.Point(39, 98);
- this.btnDeleteItems.Name = "btnDeleteItems";
- this.btnDeleteItems.Size = new System.Drawing.Size(220, 23);
- this.btnDeleteItems.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
- this.superTooltip1.SetSuperTooltip(this.btnDeleteItems, new DevComponents.DotNetBar.SuperTooltipInfo("Process Deletions", "", resources.GetString("btnDeleteItems.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(200, 175)));
- this.btnDeleteItems.TabIndex = 35;
- this.btnDeleteItems.Text = "Process Deletions";
- this.btnDeleteItems.Click += new System.EventHandler(this.btnDeleteItems_Click);
- //
- // sideNavPanel3
- //
- this.sideNavPanel3.Controls.Add(this.swCheckROLinks);
- this.sideNavPanel3.Controls.Add(this.labelX12);
- this.sideNavPanel3.Controls.Add(this.warningBox5);
- this.sideNavPanel3.Controls.Add(this.line3);
- this.sideNavPanel3.Controls.Add(this.swUpdateROVals);
- this.sideNavPanel3.Controls.Add(this.swRefreshTrans);
- this.sideNavPanel3.Controls.Add(this.labelX11);
- this.sideNavPanel3.Controls.Add(this.labelX6);
- this.sideNavPanel3.Controls.Add(this.warningBox1);
- this.sideNavPanel3.Controls.Add(this.myTV);
- this.sideNavPanel3.Controls.Add(this.btnFixLinks);
- this.sideNavPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
- this.sideNavPanel3.Location = new System.Drawing.Point(89, 31);
- this.sideNavPanel3.MinimumSize = new System.Drawing.Size(0, 540);
- this.sideNavPanel3.Name = "sideNavPanel3";
- this.sideNavPanel3.Size = new System.Drawing.Size(291, 540);
- this.sideNavPanel3.TabIndex = 10;
- this.sideNavPanel3.Visible = false;
- //
- // swCheckROLinks
- //
- //
- //
- //
- this.swCheckROLinks.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
- this.swCheckROLinks.Location = new System.Drawing.Point(10, 66);
- this.swCheckROLinks.Name = "swCheckROLinks";
- this.swCheckROLinks.Size = new System.Drawing.Size(91, 22);
- this.swCheckROLinks.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
- this.superTooltip1.SetSuperTooltip(this.swCheckROLinks, new DevComponents.DotNetBar.SuperTooltipInfo("Check RO Links", "", resources.GetString("swCheckROLinks.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 150)));
- this.swCheckROLinks.SwitchClickTogglesValue = true;
- this.swCheckROLinks.TabIndex = 33;
- this.swCheckROLinks.ValueChanged += new System.EventHandler(this.swCheckROLinks_ValueChanged);
- //
- // labelX12
- //
- this.labelX12.BackColor = System.Drawing.Color.Transparent;
- //
- //
- //
- this.labelX12.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
- this.labelX12.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.labelX12.Location = new System.Drawing.Point(107, 66);
- this.labelX12.Name = "labelX12";
- this.labelX12.Size = new System.Drawing.Size(186, 22);
- this.superTooltip1.SetSuperTooltip(this.labelX12, new DevComponents.DotNetBar.SuperTooltipInfo("Check RO Links", "", resources.GetString("labelX12.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(350, 175)));
- this.labelX12.TabIndex = 32;
- this.labelX12.Text = "Check RO Links";
- //
- // warningBox5
- //
- this.warningBox5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(196)))), ((int)(((byte)(219)))), ((int)(((byte)(249)))));
- this.warningBox5.CloseButtonVisible = false;
- this.warningBox5.Image = ((System.Drawing.Image)(resources.GetObject("warningBox5.Image")));
- this.warningBox5.Location = new System.Drawing.Point(17, 145);
- this.warningBox5.Margin = new System.Windows.Forms.Padding(4);
- this.warningBox5.Name = "warningBox5";
- this.warningBox5.OptionsButtonVisible = false;
- this.warningBox5.Size = new System.Drawing.Size(262, 32);
- this.warningBox5.TabIndex = 31;
- this.warningBox5.Text = "NOTE These tools can take a long time to run";
- //
- // line3
- //
- this.line3.BackColor = System.Drawing.Color.Transparent;
- this.line3.Location = new System.Drawing.Point(6, 127);
- this.line3.Name = "line3";
- this.line3.Size = new System.Drawing.Size(285, 12);
- this.line3.TabIndex = 30;
- this.line3.Text = "line3";
- //
- // swUpdateROVals
- //
- //
- //
- //
- this.swUpdateROVals.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
- this.swUpdateROVals.Location = new System.Drawing.Point(10, 10);
- this.swUpdateROVals.Name = "swUpdateROVals";
- this.swUpdateROVals.Size = new System.Drawing.Size(91, 22);
- this.swUpdateROVals.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
- this.superTooltip1.SetSuperTooltip(this.swUpdateROVals, new DevComponents.DotNetBar.SuperTooltipInfo("Update RO Values", "", resources.GetString("swUpdateROVals.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 150)));
- this.swUpdateROVals.SwitchClickTogglesValue = true;
- this.swUpdateROVals.TabIndex = 29;
- this.swUpdateROVals.Value = true;
- this.swUpdateROVals.ValueObject = "Y";
- this.swUpdateROVals.ValueChanged += new System.EventHandler(this.swUpdateROVals_ValueChanged);
- //
- // swRefreshTrans
- //
- //
- //
- //
- this.swRefreshTrans.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
- this.swRefreshTrans.Location = new System.Drawing.Point(10, 38);
- this.swRefreshTrans.Name = "swRefreshTrans";
- this.swRefreshTrans.Size = new System.Drawing.Size(91, 22);
- this.swRefreshTrans.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
- this.superTooltip1.SetSuperTooltip(this.swRefreshTrans, new DevComponents.DotNetBar.SuperTooltipInfo("Refresh Transitions", "", resources.GetString("swRefreshTrans.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(265, 175)));
- this.swRefreshTrans.SwitchClickTogglesValue = true;
- this.swRefreshTrans.TabIndex = 29;
- this.swRefreshTrans.ValueChanged += new System.EventHandler(this.swRefreshTrans_ValueChanged);
- //
- // labelX11
- //
- this.labelX11.BackColor = System.Drawing.Color.Transparent;
- //
- //
- //
- this.labelX11.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
- this.labelX11.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.labelX11.Location = new System.Drawing.Point(107, 10);
- this.labelX11.Name = "labelX11";
- this.labelX11.Size = new System.Drawing.Size(186, 22);
- this.superTooltip1.SetSuperTooltip(this.labelX11, new DevComponents.DotNetBar.SuperTooltipInfo("Update RO Values", "", resources.GetString("labelX11.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 150)));
- this.labelX11.TabIndex = 28;
- this.labelX11.Text = "Update RO Values";
- //
- // labelX6
- //
- this.labelX6.BackColor = System.Drawing.Color.Transparent;
- //
- //
- //
- this.labelX6.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
- this.labelX6.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.labelX6.Location = new System.Drawing.Point(107, 38);
- this.labelX6.Name = "labelX6";
- this.labelX6.Size = new System.Drawing.Size(186, 22);
- this.superTooltip1.SetSuperTooltip(this.labelX6, new DevComponents.DotNetBar.SuperTooltipInfo("Refresh Transitions", "", resources.GetString("labelX6.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(256, 175)));
- this.labelX6.TabIndex = 28;
- this.labelX6.Text = "Refresh Transitions";
- //
- // warningBox1
- //
- this.warningBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(196)))), ((int)(((byte)(219)))), ((int)(((byte)(249)))));
- this.warningBox1.CloseButtonVisible = false;
- this.warningBox1.Image = ((System.Drawing.Image)(resources.GetObject("warningBox1.Image")));
- this.warningBox1.Location = new System.Drawing.Point(17, 181);
- this.warningBox1.Margin = new System.Windows.Forms.Padding(4);
- this.warningBox1.Name = "warningBox1";
- this.warningBox1.OptionsButtonVisible = false;
- this.warningBox1.Size = new System.Drawing.Size(262, 43);
- this.warningBox1.TabIndex = 7;
- this.warningBox1.Text = " Be sure there is a current backup of the \r\n database prior to running these func" +
- "tions";
- //
- // btnFixLinks
- //
- this.btnFixLinks.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
- this.btnFixLinks.Checked = true;
- this.btnFixLinks.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
- this.btnFixLinks.Location = new System.Drawing.Point(10, 98);
- this.btnFixLinks.Name = "btnFixLinks";
- this.btnFixLinks.Size = new System.Drawing.Size(280, 23);
- this.btnFixLinks.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
- this.superTooltip1.SetSuperTooltip(this.btnFixLinks, new DevComponents.DotNetBar.SuperTooltipInfo("Process Links", "", "This will run the selected RO Links or Transitions Links tool.\r\n\r\nClick on the on" +
- "/off switches to turn on/off each tool.\r\n\r\nNote that only one of these tools can" +
- " be run at a time.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(200, 130)));
- this.btnFixLinks.TabIndex = 6;
- this.btnFixLinks.Text = "Process Links";
- this.btnFixLinks.Click += new System.EventHandler(this.btnFixLinks_Click);
- //
// sideNavPanel2
//
this.sideNavPanel2.Controls.Add(this.swRefreshTblsForSrch);
@@ -757,9 +500,9 @@
this.sideNavPanel2.Controls.Add(this.line2);
this.sideNavPanel2.Controls.Add(this.btnRunRepair);
this.sideNavPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
- this.sideNavPanel2.Location = new System.Drawing.Point(81, 31);
+ this.sideNavPanel2.Location = new System.Drawing.Point(112, 31);
this.sideNavPanel2.Name = "sideNavPanel2";
- this.sideNavPanel2.Size = new System.Drawing.Size(299, 493);
+ this.sideNavPanel2.Size = new System.Drawing.Size(268, 493);
this.sideNavPanel2.TabIndex = 6;
//
// swRefreshTblsForSrch
@@ -988,6 +731,364 @@
this.btnRunRepair.Text = "Run Repair";
this.btnRunRepair.Click += new System.EventHandler(this.btnRunRepair_Click);
//
+ // sideNavPanel4
+ //
+ this.sideNavPanel4.Controls.Add(this.swDeleteFolder);
+ this.sideNavPanel4.Controls.Add(this.labelX13);
+ this.sideNavPanel4.Controls.Add(this.swDeleteAnnotations);
+ this.sideNavPanel4.Controls.Add(this.labelX14);
+ this.sideNavPanel4.Controls.Add(this.myTVdel);
+ this.sideNavPanel4.Controls.Add(this.btnDeleteItems);
+ this.sideNavPanel4.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.sideNavPanel4.Location = new System.Drawing.Point(112, 31);
+ this.sideNavPanel4.MinimumSize = new System.Drawing.Size(0, 493);
+ this.sideNavPanel4.Name = "sideNavPanel4";
+ this.sideNavPanel4.Size = new System.Drawing.Size(268, 493);
+ this.sideNavPanel4.TabIndex = 27;
+ this.sideNavPanel4.Visible = false;
+ //
+ // swDeleteFolder
+ //
+ //
+ //
+ //
+ this.swDeleteFolder.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.swDeleteFolder.Location = new System.Drawing.Point(10, 43);
+ this.swDeleteFolder.Name = "swDeleteFolder";
+ this.swDeleteFolder.Size = new System.Drawing.Size(69, 22);
+ this.swDeleteFolder.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.superTooltip1.SetSuperTooltip(this.swDeleteFolder, new DevComponents.DotNetBar.SuperTooltipInfo("Delete Folders", "", resources.GetString("swDeleteFolder.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 140)));
+ this.swDeleteFolder.SwitchClickTogglesValue = true;
+ this.swDeleteFolder.TabIndex = 39;
+ this.swDeleteFolder.ValueChanged += new System.EventHandler(this.swDeleteFolder_ValueChanged);
+ //
+ // labelX13
+ //
+ this.labelX13.BackColor = System.Drawing.Color.Transparent;
+ //
+ //
+ //
+ this.labelX13.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.labelX13.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.labelX13.Location = new System.Drawing.Point(85, 42);
+ this.labelX13.Name = "labelX13";
+ this.labelX13.Size = new System.Drawing.Size(168, 22);
+ this.superTooltip1.SetSuperTooltip(this.labelX13, new DevComponents.DotNetBar.SuperTooltipInfo("Delete Folders", "", resources.GetString("labelX13.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 140)));
+ this.labelX13.TabIndex = 38;
+ this.labelX13.Text = "Delete Folders";
+ //
+ // swDeleteAnnotations
+ //
+ //
+ //
+ //
+ this.swDeleteAnnotations.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.swDeleteAnnotations.Location = new System.Drawing.Point(10, 15);
+ this.swDeleteAnnotations.Name = "swDeleteAnnotations";
+ this.swDeleteAnnotations.Size = new System.Drawing.Size(69, 22);
+ this.swDeleteAnnotations.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.superTooltip1.SetSuperTooltip(this.swDeleteAnnotations, new DevComponents.DotNetBar.SuperTooltipInfo("Delete Annotations", "", resources.GetString("swDeleteAnnotations.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 155)));
+ this.swDeleteAnnotations.SwitchClickTogglesValue = true;
+ this.swDeleteAnnotations.TabIndex = 37;
+ this.swDeleteAnnotations.Value = true;
+ this.swDeleteAnnotations.ValueObject = "Y";
+ this.swDeleteAnnotations.ValueChanged += new System.EventHandler(this.swDeleteAnnotations_ValueChanged);
+ //
+ // labelX14
+ //
+ this.labelX14.BackColor = System.Drawing.Color.Transparent;
+ //
+ //
+ //
+ this.labelX14.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.labelX14.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.labelX14.Location = new System.Drawing.Point(85, 14);
+ this.labelX14.Name = "labelX14";
+ this.labelX14.Size = new System.Drawing.Size(186, 22);
+ this.superTooltip1.SetSuperTooltip(this.labelX14, new DevComponents.DotNetBar.SuperTooltipInfo("Delete Annotations", "", resources.GetString("labelX14.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 155)));
+ this.labelX14.TabIndex = 36;
+ this.labelX14.Text = "Delete Annotations";
+ //
+ // myTVdel
+ //
+ this.myTVdel.CheckBoxes = true;
+ this.myTVdel.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.myTVdel.Location = new System.Drawing.Point(0, 126);
+ this.myTVdel.Name = "myTVdel";
+ this.myTVdel.Size = new System.Drawing.Size(268, 367);
+ this.myTVdel.TabIndex = 34;
+ this.myTVdel.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.myTV_AfterCheck);
+ //
+ // btnDeleteItems
+ //
+ this.btnDeleteItems.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
+ this.btnDeleteItems.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnDeleteItems.Checked = true;
+ this.btnDeleteItems.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
+ this.btnDeleteItems.Location = new System.Drawing.Point(39, 98);
+ this.btnDeleteItems.Name = "btnDeleteItems";
+ this.btnDeleteItems.Size = new System.Drawing.Size(189, 23);
+ this.btnDeleteItems.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.superTooltip1.SetSuperTooltip(this.btnDeleteItems, new DevComponents.DotNetBar.SuperTooltipInfo("Process Deletions", "", resources.GetString("btnDeleteItems.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(200, 175)));
+ this.btnDeleteItems.TabIndex = 35;
+ this.btnDeleteItems.Text = "Process Deletions";
+ this.btnDeleteItems.Click += new System.EventHandler(this.btnDeleteItems_Click);
+ //
+ // sideNavPanel5
+ //
+ this.sideNavPanel5.Controls.Add(this.btnIndexMaint);
+ this.sideNavPanel5.Controls.Add(this.itemPanel1);
+ this.sideNavPanel5.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.sideNavPanel5.Location = new System.Drawing.Point(112, 31);
+ this.sideNavPanel5.MinimumSize = new System.Drawing.Size(0, 493);
+ this.sideNavPanel5.Name = "sideNavPanel5";
+ this.sideNavPanel5.Size = new System.Drawing.Size(268, 493);
+ this.sideNavPanel5.TabIndex = 26;
+ this.sideNavPanel5.Visible = false;
+ //
+ // btnIndexMaint
+ //
+ this.btnIndexMaint.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
+ this.btnIndexMaint.Checked = true;
+ this.btnIndexMaint.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
+ this.btnIndexMaint.Location = new System.Drawing.Point(20, 152);
+ this.btnIndexMaint.Name = "btnIndexMaint";
+ this.btnIndexMaint.Size = new System.Drawing.Size(227, 23);
+ this.btnIndexMaint.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnIndexMaint.TabIndex = 4;
+ this.btnIndexMaint.Text = "Perform Index Maintenance";
+ this.btnIndexMaint.Tooltip = resources.GetString("btnIndexMaint.Tooltip");
+ this.btnIndexMaint.Click += new System.EventHandler(this.btnIndexMaint_Click);
+ //
+ // itemPanel1
+ //
+ this.itemPanel1.Controls.Add(this.btnPurgeChange);
+ this.itemPanel1.Controls.Add(this.dtePurge);
+ this.itemPanel1.Controls.Add(this.warningBox3);
+ this.itemPanel1.Controls.Add(this.warningBox6);
+ this.itemPanel1.DisabledBackColor = System.Drawing.Color.Empty;
+ this.itemPanel1.Location = new System.Drawing.Point(0, -2);
+ this.itemPanel1.Name = "itemPanel1";
+ this.itemPanel1.Size = new System.Drawing.Size(267, 148);
+ this.itemPanel1.Style.Border = DevComponents.DotNetBar.eBorderType.DoubleLine;
+ this.itemPanel1.Style.BorderColor.Color = System.Drawing.Color.DarkGray;
+ this.itemPanel1.TabIndex = 0;
+ //
+ // btnPurgeChange
+ //
+ this.btnPurgeChange.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
+ this.btnPurgeChange.Checked = true;
+ this.btnPurgeChange.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
+ this.btnPurgeChange.Location = new System.Drawing.Point(18, 32);
+ this.btnPurgeChange.Name = "btnPurgeChange";
+ this.btnPurgeChange.Size = new System.Drawing.Size(227, 23);
+ this.btnPurgeChange.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnPurgeChange.TabIndex = 1;
+ this.btnPurgeChange.Text = "Purge Change History";
+ this.btnPurgeChange.Tooltip = resources.GetString("btnPurgeChange.Tooltip");
+ this.btnPurgeChange.Click += new System.EventHandler(this.btnPurgeChange_Click);
+ //
+ // dtePurge
+ //
+ this.dtePurge.Format = System.Windows.Forms.DateTimePickerFormat.Short;
+ this.dtePurge.Location = new System.Drawing.Point(92, 7);
+ this.dtePurge.Name = "dtePurge";
+ this.dtePurge.Size = new System.Drawing.Size(87, 20);
+ this.dtePurge.TabIndex = 0;
+ //
+ // warningBox3
+ //
+ this.warningBox3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(196)))), ((int)(((byte)(219)))), ((int)(((byte)(249)))));
+ this.warningBox3.CloseButtonVisible = false;
+ this.warningBox3.Image = ((System.Drawing.Image)(resources.GetObject("warningBox3.Image")));
+ this.warningBox3.Location = new System.Drawing.Point(1, 61);
+ this.warningBox3.Margin = new System.Windows.Forms.Padding(4);
+ this.warningBox3.Name = "warningBox3";
+ this.warningBox3.OptionsButtonVisible = false;
+ this.warningBox3.Size = new System.Drawing.Size(264, 32);
+ this.warningBox3.TabIndex = 32;
+ this.warningBox3.Text = "NOTE These tools can take a long time to run";
+ //
+ // warningBox6
+ //
+ this.warningBox6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(196)))), ((int)(((byte)(219)))), ((int)(((byte)(249)))));
+ this.warningBox6.CloseButtonVisible = false;
+ this.warningBox6.Image = ((System.Drawing.Image)(resources.GetObject("warningBox6.Image")));
+ this.warningBox6.Location = new System.Drawing.Point(1, 97);
+ this.warningBox6.Margin = new System.Windows.Forms.Padding(4);
+ this.warningBox6.Name = "warningBox6";
+ this.warningBox6.OptionsButtonVisible = false;
+ this.warningBox6.Size = new System.Drawing.Size(264, 43);
+ this.warningBox6.TabIndex = 31;
+ this.warningBox6.Text = " Be sure there is a current backup of the \r\n database prior to running these func" +
+ "tions";
+ //
+ // sideNavPanel3
+ //
+ this.sideNavPanel3.Controls.Add(this.swCheckROLinks);
+ this.sideNavPanel3.Controls.Add(this.labelX12);
+ this.sideNavPanel3.Controls.Add(this.warningBox5);
+ this.sideNavPanel3.Controls.Add(this.line3);
+ this.sideNavPanel3.Controls.Add(this.swUpdateROVals);
+ this.sideNavPanel3.Controls.Add(this.swRefreshTrans);
+ this.sideNavPanel3.Controls.Add(this.labelX11);
+ this.sideNavPanel3.Controls.Add(this.labelX6);
+ this.sideNavPanel3.Controls.Add(this.warningBox1);
+ this.sideNavPanel3.Controls.Add(this.myTV);
+ this.sideNavPanel3.Controls.Add(this.btnFixLinks);
+ this.sideNavPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.sideNavPanel3.Location = new System.Drawing.Point(112, 31);
+ this.sideNavPanel3.MinimumSize = new System.Drawing.Size(0, 540);
+ this.sideNavPanel3.Name = "sideNavPanel3";
+ this.sideNavPanel3.Size = new System.Drawing.Size(268, 540);
+ this.sideNavPanel3.TabIndex = 10;
+ this.sideNavPanel3.Visible = false;
+ //
+ // swCheckROLinks
+ //
+ //
+ //
+ //
+ this.swCheckROLinks.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.swCheckROLinks.Location = new System.Drawing.Point(10, 66);
+ this.swCheckROLinks.Name = "swCheckROLinks";
+ this.swCheckROLinks.Size = new System.Drawing.Size(91, 22);
+ this.swCheckROLinks.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.superTooltip1.SetSuperTooltip(this.swCheckROLinks, new DevComponents.DotNetBar.SuperTooltipInfo("Check RO Links", "", resources.GetString("swCheckROLinks.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 150)));
+ this.swCheckROLinks.SwitchClickTogglesValue = true;
+ this.swCheckROLinks.TabIndex = 33;
+ this.swCheckROLinks.ValueChanged += new System.EventHandler(this.swCheckROLinks_ValueChanged);
+ //
+ // labelX12
+ //
+ this.labelX12.BackColor = System.Drawing.Color.Transparent;
+ //
+ //
+ //
+ this.labelX12.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.labelX12.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.labelX12.Location = new System.Drawing.Point(107, 66);
+ this.labelX12.Name = "labelX12";
+ this.labelX12.Size = new System.Drawing.Size(186, 22);
+ this.superTooltip1.SetSuperTooltip(this.labelX12, new DevComponents.DotNetBar.SuperTooltipInfo("Check RO Links", "", resources.GetString("labelX12.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(350, 175)));
+ this.labelX12.TabIndex = 32;
+ this.labelX12.Text = "Check RO Links";
+ //
+ // warningBox5
+ //
+ this.warningBox5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(196)))), ((int)(((byte)(219)))), ((int)(((byte)(249)))));
+ this.warningBox5.CloseButtonVisible = false;
+ this.warningBox5.Image = ((System.Drawing.Image)(resources.GetObject("warningBox5.Image")));
+ this.warningBox5.Location = new System.Drawing.Point(17, 145);
+ this.warningBox5.Margin = new System.Windows.Forms.Padding(4);
+ this.warningBox5.Name = "warningBox5";
+ this.warningBox5.OptionsButtonVisible = false;
+ this.warningBox5.Size = new System.Drawing.Size(262, 32);
+ this.warningBox5.TabIndex = 31;
+ this.warningBox5.Text = "NOTE These tools can take a long time to run";
+ //
+ // line3
+ //
+ this.line3.BackColor = System.Drawing.Color.Transparent;
+ this.line3.Location = new System.Drawing.Point(6, 127);
+ this.line3.Name = "line3";
+ this.line3.Size = new System.Drawing.Size(285, 12);
+ this.line3.TabIndex = 30;
+ this.line3.Text = "line3";
+ //
+ // swUpdateROVals
+ //
+ //
+ //
+ //
+ this.swUpdateROVals.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.swUpdateROVals.Location = new System.Drawing.Point(10, 10);
+ this.swUpdateROVals.Name = "swUpdateROVals";
+ this.swUpdateROVals.Size = new System.Drawing.Size(91, 22);
+ this.swUpdateROVals.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.superTooltip1.SetSuperTooltip(this.swUpdateROVals, new DevComponents.DotNetBar.SuperTooltipInfo("Update RO Values", "", resources.GetString("swUpdateROVals.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 150)));
+ this.swUpdateROVals.SwitchClickTogglesValue = true;
+ this.swUpdateROVals.TabIndex = 29;
+ this.swUpdateROVals.Value = true;
+ this.swUpdateROVals.ValueObject = "Y";
+ this.swUpdateROVals.ValueChanged += new System.EventHandler(this.swUpdateROVals_ValueChanged);
+ //
+ // swRefreshTrans
+ //
+ //
+ //
+ //
+ this.swRefreshTrans.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.swRefreshTrans.Location = new System.Drawing.Point(10, 38);
+ this.swRefreshTrans.Name = "swRefreshTrans";
+ this.swRefreshTrans.Size = new System.Drawing.Size(91, 22);
+ this.swRefreshTrans.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.superTooltip1.SetSuperTooltip(this.swRefreshTrans, new DevComponents.DotNetBar.SuperTooltipInfo("Refresh Transitions", "", resources.GetString("swRefreshTrans.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(265, 175)));
+ this.swRefreshTrans.SwitchClickTogglesValue = true;
+ this.swRefreshTrans.TabIndex = 29;
+ this.swRefreshTrans.ValueChanged += new System.EventHandler(this.swRefreshTrans_ValueChanged);
+ //
+ // labelX11
+ //
+ this.labelX11.BackColor = System.Drawing.Color.Transparent;
+ //
+ //
+ //
+ this.labelX11.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.labelX11.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.labelX11.Location = new System.Drawing.Point(107, 10);
+ this.labelX11.Name = "labelX11";
+ this.labelX11.Size = new System.Drawing.Size(186, 22);
+ this.superTooltip1.SetSuperTooltip(this.labelX11, new DevComponents.DotNetBar.SuperTooltipInfo("Update RO Values", "", resources.GetString("labelX11.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 150)));
+ this.labelX11.TabIndex = 28;
+ this.labelX11.Text = "Update RO Values";
+ //
+ // labelX6
+ //
+ this.labelX6.BackColor = System.Drawing.Color.Transparent;
+ //
+ //
+ //
+ this.labelX6.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.labelX6.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.labelX6.Location = new System.Drawing.Point(107, 38);
+ this.labelX6.Name = "labelX6";
+ this.labelX6.Size = new System.Drawing.Size(186, 22);
+ this.superTooltip1.SetSuperTooltip(this.labelX6, new DevComponents.DotNetBar.SuperTooltipInfo("Refresh Transitions", "", resources.GetString("labelX6.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(256, 175)));
+ this.labelX6.TabIndex = 28;
+ this.labelX6.Text = "Refresh Transitions";
+ //
+ // warningBox1
+ //
+ this.warningBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(196)))), ((int)(((byte)(219)))), ((int)(((byte)(249)))));
+ this.warningBox1.CloseButtonVisible = false;
+ this.warningBox1.Image = ((System.Drawing.Image)(resources.GetObject("warningBox1.Image")));
+ this.warningBox1.Location = new System.Drawing.Point(17, 181);
+ this.warningBox1.Margin = new System.Windows.Forms.Padding(4);
+ this.warningBox1.Name = "warningBox1";
+ this.warningBox1.OptionsButtonVisible = false;
+ this.warningBox1.Size = new System.Drawing.Size(262, 43);
+ this.warningBox1.TabIndex = 7;
+ this.warningBox1.Text = " Be sure there is a current backup of the \r\n database prior to running these func" +
+ "tions";
+ //
+ // btnFixLinks
+ //
+ this.btnFixLinks.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
+ this.btnFixLinks.Checked = true;
+ this.btnFixLinks.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
+ this.btnFixLinks.Location = new System.Drawing.Point(10, 98);
+ this.btnFixLinks.Name = "btnFixLinks";
+ this.btnFixLinks.Size = new System.Drawing.Size(280, 23);
+ this.btnFixLinks.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.superTooltip1.SetSuperTooltip(this.btnFixLinks, new DevComponents.DotNetBar.SuperTooltipInfo("Process Links", "", "This will run the selected RO Links or Transitions Links tool.\r\n\r\nClick on the on" +
+ "/off switches to turn on/off each tool.\r\n\r\nNote that only one of these tools can" +
+ " be run at a time.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(200, 130)));
+ this.btnFixLinks.TabIndex = 6;
+ this.btnFixLinks.Text = "Process Links";
+ this.btnFixLinks.Click += new System.EventHandler(this.btnFixLinks_Click);
+ //
// sideNavItem1
//
this.sideNavItem1.IsSystemMenu = true;
@@ -1022,6 +1123,15 @@
this.sideNavItmLinks.Text = "Links";
this.sideNavItmLinks.Click += new System.EventHandler(this.sideNavItmLinks_Click);
//
+ // sideNavItmMaint
+ //
+ this.sideNavItmMaint.Name = "sideNavItmMaint";
+ this.sideNavItmMaint.Panel = this.sideNavPanel5;
+ this.sideNavItmMaint.Symbol = "58154";
+ this.sideNavItmMaint.SymbolSet = DevComponents.DotNetBar.eSymbolSet.Material;
+ this.sideNavItmMaint.Text = "Maintenance";
+ this.sideNavItmMaint.Click += new System.EventHandler(this.sideNavItmMaint_Click);
+ //
// sideNavItmDelete
//
this.sideNavItmDelete.Name = "sideNavItmDelete";
@@ -1161,9 +1271,11 @@
this.panelEx1.ResumeLayout(false);
this.sideNav1.ResumeLayout(false);
this.sideNav1.PerformLayout();
- this.sideNavPanel4.ResumeLayout(false);
- this.sideNavPanel3.ResumeLayout(false);
this.sideNavPanel2.ResumeLayout(false);
+ this.sideNavPanel4.ResumeLayout(false);
+ this.sideNavPanel5.ResumeLayout(false);
+ this.itemPanel1.ResumeLayout(false);
+ this.sideNavPanel3.ResumeLayout(false);
this.panelEx4.ResumeLayout(false);
this.ResumeLayout(false);
@@ -1209,7 +1321,8 @@
private DevComponents.DotNetBar.Separator separator1;
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItmRepair;
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItmLinks;
- private DevComponents.DotNetBar.Controls.SideNavItem sideNavItmExit;
+ private DevComponents.DotNetBar.Controls.SideNavItem sideNavItmMaint;
+ private DevComponents.DotNetBar.Controls.SideNavItem sideNavItmExit;
private DevComponents.DotNetBar.LabelX lblAdmToolProgressType;
private DevComponents.DotNetBar.ProgressSteps progressSteps1;
private DevComponents.DotNetBar.StepItem stepItem1;
@@ -1236,14 +1349,21 @@
private DevComponents.DotNetBar.LabelX labelX12;
private DevComponents.DotNetBar.ButtonItem buttonItem1;
private DevComponents.DotNetBar.Controls.SideNavPanel sideNavPanel4;
- private DevComponents.DotNetBar.Controls.SwitchButton swDeleteFolder;
+ private DevComponents.DotNetBar.Controls.SideNavPanel sideNavPanel5;
+ private DevComponents.DotNetBar.Controls.SwitchButton swDeleteFolder;
private DevComponents.DotNetBar.LabelX labelX13;
private DevComponents.DotNetBar.Controls.SwitchButton swDeleteAnnotations;
private DevComponents.DotNetBar.LabelX labelX14;
private System.Windows.Forms.TreeView myTVdel;
private DevComponents.DotNetBar.ButtonX btnDeleteItems;
private DevComponents.DotNetBar.Controls.SideNavItem sideNavItmDelete;
- }
+ private DevComponents.DotNetBar.PanelEx itemPanel1;
+ private DevComponents.DotNetBar.ButtonX btnPurgeChange;
+ private System.Windows.Forms.DateTimePicker dtePurge;
+ private DevComponents.DotNetBar.Controls.WarningBox warningBox3;
+ private DevComponents.DotNetBar.Controls.WarningBox warningBox6;
+ private DevComponents.DotNetBar.ButtonX btnIndexMaint;
+ }
}
diff --git a/PROMS/VEPROMS User Interface/frmBatchRefresh.cs b/PROMS/VEPROMS User Interface/frmBatchRefresh.cs
index dc19aa61..fe893ad7 100644
--- a/PROMS/VEPROMS User Interface/frmBatchRefresh.cs
+++ b/PROMS/VEPROMS User Interface/frmBatchRefresh.cs
@@ -9,6 +9,7 @@ using Volian.Controls.Library;
using DevComponents.DotNetBar;
using JR.Utils.GUI.Forms;
using System.Linq;
+using System.Data;
namespace VEPROMS
{
@@ -62,7 +63,13 @@ namespace VEPROMS
swRmOrphanDataRecs.Enabled = false;
swRefreshWordAttmts.Enabled = false;
swStandardHypenChars.Enabled = false;
+
+ //if not full admin, disable Purge Change History
+ btnPurgeChange.Enabled = false;
}
+
+ //default to 10 years back
+ dtePurge.Value = DateTime.Now.AddYears(-10);
}
// Make txtProcess text box available to frmAnnotationsClean form.
internal TextBox GettxtProcess()
@@ -1018,6 +1025,51 @@ namespace VEPROMS
}
}
+ //C2021-058 Admin Tool Purge Change History
+ private void btnPurgeChange_Click(object sender, EventArgs e)
+ {
+
+ if (AreOtherUserSessionsInProgress() || !CheckProcessLater()) return; // delay processing if set
+
+ //check any users have active sessions
+ //if they do, do not continue
+ if (!AreOtherUserSessionsInProgress())
+ {
+ DialogResult dr = MessageBox.Show("Are you sure you wish to Perform this action. This will remove all audit records before the specified date above, as well as the ability to restore deleted items from before the above date. It is recommended that you perform a database backup prior to performing this action.", "Purge Change History", MessageBoxButtons.OKCancel);
+ if (dr == DialogResult.OK)
+ {
+
+ //Purge Change History
+ string statmsg = $"Purging all Change History before {dtePurge.Value.Date.ToString("MM/dd/yyyy")}";
+ InitialProgressBarMessage = statmsg;
+ txtResults.AppendText(statmsg);
+ txtResults.AppendText(Environment.NewLine);
+ txtResults.AppendText(Environment.NewLine);
+ Maintenance.PurgeChangeHistory(dtePurge.Value);
+
+ //update status
+ statmsg = $"Finished Purging all Change History before {dtePurge.Value.Date.ToString("MM/dd/yyyy")}. Updating indexes to reflect cleaned data.";
+ DoProgressBarRefresh(50, 100, statmsg);
+ txtProcess.AppendText(statmsg);
+ txtProcess.AppendText(Environment.NewLine);
+ txtProcess.AppendText(Environment.NewLine);
+ txtResults.AppendText(statmsg);
+ txtResults.AppendText(Environment.NewLine);
+ txtResults.AppendText(Environment.NewLine);
+
+ //Perform Index Maintenance
+ Maintenance.IndexMaintenance();
+ statmsg = "Finished Purging Change History and Updating indexes to reflect cleaned data.";
+ FinalProgressBarMessage = statmsg;
+ txtResults.AppendText(statmsg);
+ txtResults.AppendText(Environment.NewLine);
+ txtResults.AppendText(Environment.NewLine);
+
+ MessageBox.Show("Purge Change History Completed", "Purge Change History");
+ }
+ }
+ }
+
private void myTV_AfterCheck(object sender, TreeViewEventArgs e)
{
//B2025 - 013 Admin Tool Tree Behavior
@@ -1186,6 +1238,20 @@ namespace VEPROMS
ResetDelTV(false);
}
+ //C2021-058 Admin Tool Purge Change History
+ //new Maintenance tab
+ private void sideNavItmMaint_Click(object sender, EventArgs e)
+ {
+ AdminToolType = E_AdminToolType.Maintenance;
+ setupProgessSteps1();
+
+ //notify Set Admin user that only Full Admins can run maintenance tools
+ if (!IsAdministratorUser)
+ {
+ MessageBox.Show("Note: Only Full PROMS Administrator Users can run Purge Change History", "Maintenance Tools", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ }
+
#region On/Off Swiches
// C2017-030 new Admin Tools user interface
@@ -1193,7 +1259,8 @@ namespace VEPROMS
{
Repair = 1,
Links = 2,
- Delete = 4
+ Delete = 4,
+ Maintenance = 10
};
private E_AdminToolType AdminToolType = E_AdminToolType.Repair;
@@ -1227,6 +1294,7 @@ namespace VEPROMS
break;
case E_AdminToolType.Links:
+ case E_AdminToolType.Maintenance:
splitContainer3.Panel2Collapsed = true;
progressSteps1.Visible = false;
break;
@@ -1661,6 +1729,55 @@ namespace VEPROMS
//clears the stack to help with memory - should never need to undo text changes to this.
txtResults.ClearUndo();
}
+
+ //C2025-052 Admin Tool Index Maintenance
+ private void btnIndexMaint_Click(object sender, EventArgs e)
+ {
+ if (!CheckProcessLater()) return; // delay processing if set
+
+ //check any users have active sessions
+ if (!AreOtherUserSessionsInProgress())
+ {
+ string statmsg = "Updating Indexes (this may take a few minutes to complete)...";
+ InitialProgressBarMessage = statmsg;
+ txtResults.AppendText(statmsg);
+ txtResults.AppendText(Environment.NewLine);
+
+ Maintenance.IndexMaintenance();
+
+ statmsg = "Finished Updating indexes.";
+ FinalProgressBarMessage = statmsg;
+ txtResults.AppendText(statmsg);
+ txtResults.AppendText(Environment.NewLine);
+
+ MessageBox.Show("Index Maintenance Completed", "Index Maintenance");
+ }
+ }
+
+ //C2021-058 Admin Tool Purge Change History/C2025-052 Admin Tool Index Maintenance
+ // If any other users have active sessions, stop and write
+ // out list of users
+ private bool AreOtherUserSessionsInProgress()
+ {
+ DataTable dt = Maintenance.GetOtherUserSessionsInProgress(MySessionInfo.UserID);
+ if (dt.Rows.Count == 0) return false;
+
+ txtProcess.AppendText("The following Users are currently in PROMS:");
+ txtProcess.AppendText(Environment.NewLine);
+ txtProcess.AppendText("Userid, Computer Name, last login");
+ txtProcess.AppendText(Environment.NewLine);
+
+ foreach (DataRow r in dt.Rows)
+ {
+ txtProcess.AppendText($"{r["UserID"]}, {r["MachineName"]}, {r["DTSDtart"]}");
+ txtProcess.AppendText(Environment.NewLine);
+ }
+
+ MessageBox.Show("Certain Maintenance functions cannot be run if other users are currently in PROMS. Please see the output Results text for a list of other users with active PROMS sessions.", "Active PROMS Sessions", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+
+ return true;
+ }
+
}
}
diff --git a/PROMS/VEPROMS User Interface/frmBatchRefresh.resx b/PROMS/VEPROMS User Interface/frmBatchRefresh.resx
index 55a3e983..d7589931 100644
--- a/PROMS/VEPROMS User Interface/frmBatchRefresh.resx
+++ b/PROMS/VEPROMS User Interface/frmBatchRefresh.resx
@@ -216,6 +216,12 @@ Should an item become orphaned (disconnected) from the rest of the data, it will
Should an item become orphaned (disconnected) from the rest of the data, it will no longer be accessible. This tool removes any orphaned items from the database.
+
+
+ This will perform Index Maintenance to realign indexes to optimize performance.
+This function will cause no change to data or records in PROMS.
+It should however be performed when other users are not in PROMS, as it could
+cause slowdown or errors for other users while it is running.
This allows the user to remove folders and sub folders as well as their contents.
@@ -255,6 +261,47 @@ If more than one working draft is selected, it is recommended that this be perfo
Click on the on/off switches to turn on/off each tool.
Note that only one of these tools can be run at a time.
+
+
+ Purges all audit information and change history older than the above date.
+It is recommended that you perform a database backup before performing this action.
+Note after purging the information, this will automatically perform the Index
+Maintenance function to realign indexes with the cut down audit data.
+Only Full PROMS Administrator Users can perform this action.
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
+ k11Ik1Ecxv9zouJ2E4TWnR8V5tAppJmYsLnNlaLTxAoiKIQiibpYSmEEmSSa0IVGISMUw7rpE+yiQiuk
+ /IhROssPyjanpL4udeq29z3nCdcH+Wb1g+fq/zzP+R8Oh+gvPK4kNWujp1IrPek8S5Hy+X9hbXSN9aVC
+ eq1FwEYN8vk/mWqiDPZwI+NOHbhLj8CdDaK7npLlvnWpO0AKqZV62YgO/GMquDMN0rAevkbqlHvXZdlG
+ h6Rn8eATu4GJncB0Fvh8HnwPYuGpJ4vcvwZbGYWJrcpPzGXG8ngGtsZFQJOggrS0B9J0MbwNIR9uHqRQ
+ ee4XPhuVSy814IIB/lk9QkIIanUomFgIzkux0qHB/CUqk+eCtB2jCLEl1M1mLcBSLthKHlQqJaKjw8FZ
+ Mbi/ENKXEizUKD/f2k9h8jz5mumk2K0F9xUAUgE4K0JUVDji4yLBvflgMyYwlxFL9zSYq6ITa8I3DlNY
+ wKZ0soVSgFkAXgwuFSEmJhJJiWqwCR3YSCbY2x0QB4zwnFc6W4p+22KxiY4EXiQF74kf6/L5vdi+TYV0
+ rRpsMB2sPxWsRwvpTTq87QmYOUNHg+HqQlL4ryscbK4UPGD5vu60CWw8G7evbkN7bSykXm0w/FMBew6E
+ CsXQFQMpaLKezP6OLeDL+8AFM5hLBzaciennKcFXUCgI7o7ENQWSfRcWmmPgPEW5tNJIj8QxM9hkDthY
+ FthAGlh/SvAPXC7fjOrjmyC+Sl5TsCpfdzYEK92llUbllDiaD3HEDPG9CaLDCGnI9IdEhwnioBHiOwMC
+ dj38fYbVglHy1FGJt57uL9ZS10IN9cxfJPvXCzTgqSKH5xwNzVXSkFBBDsFKA4KV7IKVegQrda2e7j5N
+ ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
+ k11Ik1Ecxv9zouJ2E4TWnR8V5tAppJmYsLnNlaLTxAoiKIQiibpYSmEEmSSa0IVGISMUw7rpE+yiQiuk
+ /IhROssPyjanpL4udeq29z3nCdcH+Wb1g+fq/zzP+R8Oh+gvPK4kNWujp1IrPek8S5Hy+X9hbXSN9aVC
+ eq1FwEYN8vk/mWqiDPZwI+NOHbhLj8CdDaK7npLlvnWpO0AKqZV62YgO/GMquDMN0rAevkbqlHvXZdlG
+ h6Rn8eATu4GJncB0Fvh8HnwPYuGpJ4vcvwZbGYWJrcpPzGXG8ngGtsZFQJOggrS0B9J0MbwNIR9uHqRQ
+ ee4XPhuVSy814IIB/lk9QkIIanUomFgIzkux0qHB/CUqk+eCtB2jCLEl1M1mLcBSLthKHlQqJaKjw8FZ
+ Mbi/ENKXEizUKD/f2k9h8jz5mumk2K0F9xUAUgE4K0JUVDji4yLBvflgMyYwlxFL9zSYq6ITa8I3DlNY
+ wKZ0soVSgFkAXgwuFSEmJhJJiWqwCR3YSCbY2x0QB4zwnFc6W4p+22KxiY4EXiQF74kf6/L5vdi+TYV0
+ rRpsMB2sPxWsRwvpTTq87QmYOUNHg+HqQlL4ryscbK4UPGD5vu60CWw8G7evbkN7bSykXm0w/FMBew6E
+ CsXQFQMpaLKezP6OLeDL+8AFM5hLBzaciennKcFXUCgI7o7ENQWSfRcWmmPgPEW5tNJIj8QxM9hkDthY
+ FthAGlh/SvAPXC7fjOrjmyC+Sl5TsCpfdzYEK92llUbllDiaD3HEDPG9CaLDCGnI9IdEhwnioBHiOwMC
+ dj38fYbVglHy1FGJt57uL9ZS10IN9cxfJPvXCzTgqSKH5xwNzVXSkFBBDsFKA4KV7IKVegQrda2e7j5N
+ ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
+
This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
@@ -342,6 +389,6 @@ If more than one procedure is selected, it is recommended that this be performed
- 46
+ 137
\ No newline at end of file
diff --git a/PROMS/VEPROMS.CSLA.Library/Minimal/Maintenance.cs b/PROMS/VEPROMS.CSLA.Library/Minimal/Maintenance.cs
new file mode 100644
index 00000000..a4ef77e1
--- /dev/null
+++ b/PROMS/VEPROMS.CSLA.Library/Minimal/Maintenance.cs
@@ -0,0 +1,92 @@
+using System;
+using Csla.Data;
+using System.Data;
+using System.Data.SqlClient;
+
+//CSM - C2021-058 - Minimal Class for User Maintenance
+namespace VEPROMS.CSLA.Library
+{
+ public static class Maintenance
+ {
+
+ #region Get User Reports - Admin Tool Purge Change History
+ //CSM - C2021-058 Maintenance Purge Change History
+ public static void PurgeChangeHistory(DateTime dte)
+ {
+ try
+ {
+ using (SqlConnection cn = Database.VEPROMS_SqlConnection)
+ {
+ using (SqlCommand cm = cn.CreateCommand())
+ {
+ cm.CommandType = CommandType.StoredProcedure;
+ cm.CommandText = "vesp_PurgeChangeHistory";
+ cm.Parameters.AddWithValue("@dte", dte);
+ cm.CommandTimeout = 0;
+ cm.ExecuteNonQuery();
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new DbCslaException("Error in PurgeChangeHistory: ", ex);
+ }
+ }
+
+ //CSM - C2025-052 Rebuild all Indexes
+ public static void IndexMaintenance()
+ {
+ try
+ {
+ using (SqlConnection cn = Database.VEPROMS_SqlConnection)
+ {
+ using (SqlCommand cm = cn.CreateCommand())
+ {
+ cm.CommandType = CommandType.StoredProcedure;
+ cm.CommandText = "vesp_IndexMaintenance";
+ cm.CommandTimeout = 0;
+ cm.ExecuteNonQuery();
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new DbCslaException("Error in IndexMaintenance: ", ex);
+ }
+ }
+
+ #endregion
+
+ #region Get Other User Sessions In Progress
+ //returns all users, machine names, login date
+ //except current user (user supplied)
+ public static DataTable GetOtherUserSessionsInProgress(string userid)
+ {
+ try
+ {
+ using (SqlConnection cn = Database.VEPROMS_SqlConnection)
+ {
+ using (SqlCommand cm = cn.CreateCommand())
+ {
+ cm.CommandType = CommandType.StoredProcedure;
+ cm.CommandText = "vesp_GetOtherActiveSessions";
+ cm.Parameters.AddWithValue("@UsrID", userid);
+ cm.CommandTimeout = Database.DefaultTimeout;
+ using (SqlDataAdapter da = new SqlDataAdapter(cm))
+ {
+ DataTable dt = new DataTable();
+ da.Fill(dt);
+ return dt;
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new DbCslaException("Error in vesp_GetOtherActiveSessions: retrieving data failed", ex);
+ }
+ }
+ #endregion
+
+ }
+}
diff --git a/PROMS/VEPROMS.CSLA.Library/VEPROMS.CSLA.Library.csproj b/PROMS/VEPROMS.CSLA.Library/VEPROMS.CSLA.Library.csproj
index b15fe55e..24da5a1b 100644
--- a/PROMS/VEPROMS.CSLA.Library/VEPROMS.CSLA.Library.csproj
+++ b/PROMS/VEPROMS.CSLA.Library/VEPROMS.CSLA.Library.csproj
@@ -389,6 +389,7 @@
+