Development #357
@@ -1,5 +1,3 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Set NoCount On;
 | 
					Set NoCount On;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
If (db_name() in('master','model','msdn','tempdb'))
 | 
					If (db_name() in('master','model','msdn','tempdb'))
 | 
				
			||||||
@@ -22232,13 +22230,12 @@ Go
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
==========================================================================================================
 | 
					==========================================================================================================
 | 
				
			||||||
 Begin: C2024-004 | B2024-041: KL - Update Copy Replace functionality, (remove ''copy of'')
 | 
					 Begin: C2024-004: KL - Update Copy Replace functionality, (remove ''copy of'')
 | 
				
			||||||
==========================================================================================================
 | 
					==========================================================================================================
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 | 
					IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[CopyItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
 | 
				
			||||||
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ReplaceItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
 | 
						DROP PROCEDURE [CopyItemAndChildren];
 | 
				
			||||||
	DROP PROCEDURE [ReplaceItemAndChildren];
 | 
					 | 
				
			||||||
GO
 | 
					GO
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	/*****************************************************************************
 | 
						/*****************************************************************************
 | 
				
			||||||
@@ -22248,22 +22245,11 @@ GO
 | 
				
			|||||||
	/*
 | 
						/*
 | 
				
			||||||
	==========================================================================================================
 | 
						==========================================================================================================
 | 
				
			||||||
	 Author:		Kevin Laskey
 | 
						 Author:		Kevin Laskey
 | 
				
			||||||
	 Create Date:	07/15/2024
 | 
						 Modified Date:	07/09/2024
 | 
				
			||||||
	 Description:	B2024-041: "Copy of" is no longer being appended for paste before/after
 | 
						 Description:	Copy Item and its Children
 | 
				
			||||||
	==========================================================================================================
 | 
						==========================================================================================================
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
 | 
					CREATE PROCEDURE [dbo].[CopyItemAndChildren]
 | 
				
			||||||
/****** Object:  StoredProcedure [dbo].[CopyItemAndChildren]    Script Date: 7/15/2024 9:29:21 AM ******/
 | 
					 | 
				
			||||||
SET ANSI_NULLS ON
 | 
					 | 
				
			||||||
GO
 | 
					 | 
				
			||||||
SET QUOTED_IDENTIFIER ON
 | 
					 | 
				
			||||||
GO
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
/*****************************************************************************
 | 
					 | 
				
			||||||
   Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
 | 
					 | 
				
			||||||
       Copyright 2012 - Volian Enterprises, Inc. All rights reserved.
 | 
					 | 
				
			||||||
*****************************************************************************/
 | 
					 | 
				
			||||||
CREATE PROCEDURE [dbo].[ReplaceItemAndChildren]
 | 
					 | 
				
			||||||
(
 | 
					(
 | 
				
			||||||
	@StartItemID INT,
 | 
						@StartItemID INT,
 | 
				
			||||||
	@DestFormatID INT,
 | 
						@DestFormatID INT,
 | 
				
			||||||
@@ -22308,6 +22294,7 @@ INSERT INTO @Children SELECT ItemID,ItemID,ContentID,ContentID,FormatID,FormatID
 | 
				
			|||||||
-- <<< Copy Contents >>>
 | 
					-- <<< Copy Contents >>>
 | 
				
			||||||
-- Create new content rows to match the existing rows.  Set the type to the Current ContentID temporarily
 | 
					-- Create new content rows to match the existing rows.  Set the type to the Current ContentID temporarily
 | 
				
			||||||
-- so that the new content rows can be associated with the existing content rows.
 | 
					-- so that the new content rows can be associated with the existing content rows.
 | 
				
			||||||
 | 
					-- Rem 'Copy Of ' + before first [Number] for C2024-004 (KL)
 | 
				
			||||||
INSERT INTO Contents
 | 
					INSERT INTO Contents
 | 
				
			||||||
  ([Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID])
 | 
					  ([Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID])
 | 
				
			||||||
	select CASE when [ContentID] = @StartContentID and [Type]<20000 then [Number] else [Number] end,
 | 
						select CASE when [ContentID] = @StartContentID and [Type]<20000 then [Number] else [Number] end,
 | 
				
			||||||
@@ -22635,618 +22622,13 @@ BEGIN CATCH -- Catch Block
 | 
				
			|||||||
 	ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit.  Top level will rollback
 | 
					 	ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit.  Top level will rollback
 | 
				
			||||||
	EXEC vlnErrorHandler
 | 
						EXEC vlnErrorHandler
 | 
				
			||||||
END CATCH
 | 
					END CATCH
 | 
				
			||||||
GO
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[PasteItemReplace]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
 | 
					 | 
				
			||||||
	DROP PROCEDURE [PasteItemReplace];
 | 
					 | 
				
			||||||
GO
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	/*****************************************************************************
 | 
					 | 
				
			||||||
	   Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
 | 
					 | 
				
			||||||
		   Copyright 2024 - Volian Enterprises, Inc. All rights reserved.
 | 
					 | 
				
			||||||
	*****************************************************************************/
 | 
					 | 
				
			||||||
	/*
 | 
					 | 
				
			||||||
	==========================================================================================================
 | 
					 | 
				
			||||||
	 Author:		Kevin Laskey
 | 
					 | 
				
			||||||
	 Create Date:	07/15/2024
 | 
					 | 
				
			||||||
	 Description:	B2024-041: "Copy of" is no longer being appended for paste before/after
 | 
					 | 
				
			||||||
	==========================================================================================================
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	 
 | 
					 | 
				
			||||||
SET ANSI_NULLS ON
 | 
					 | 
				
			||||||
GO
 | 
					 | 
				
			||||||
SET QUOTED_IDENTIFIER ON
 | 
					 | 
				
			||||||
GO
 | 
					 | 
				
			||||||
/****** Object:  StoredProcedure [dbo].[PasteItemReplace]    Script Date: 03/20/2012 16:02:54 ******/
 | 
					 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
declare @NewItemID int
 | 
					 | 
				
			||||||
declare @dts datetime
 | 
					 | 
				
			||||||
set @newitemid = 0
 | 
					 | 
				
			||||||
set @dts = getdate()
 | 
					 | 
				
			||||||
exec PasteItemReplace 398,397,20014,@dts,'bodine',@NewItemID output
 | 
					 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
-- ItemID is item to replace
 | 
					 | 
				
			||||||
-- StartItemID is item to copy	
 | 
					 | 
				
			||||||
/*****************************************************************************
 | 
					 | 
				
			||||||
   Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
 | 
					 | 
				
			||||||
       Copyright 2012 - Volian Enterprises, Inc. All rights reserved.
 | 
					 | 
				
			||||||
*****************************************************************************/
 | 
					 | 
				
			||||||
CREATE PROCEDURE [dbo].[PasteItemReplace]
 | 
					 | 
				
			||||||
(
 | 
					 | 
				
			||||||
	@ItemID int=null,	@StartItemID int=null,
 | 
					 | 
				
			||||||
	@Type int=null, @DTS datetime,	@UserID nvarchar(100),
 | 
					 | 
				
			||||||
	@NewItemID int output
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
WITH EXECUTE AS OWNER
 | 
					 | 
				
			||||||
AS
 | 
					 | 
				
			||||||
BEGIN TRY -- Try Block
 | 
					 | 
				
			||||||
	BEGIN TRANSACTION
 | 
					 | 
				
			||||||
		DECLARE @ContentID AS INT
 | 
					 | 
				
			||||||
		DECLARE @NextItemID AS INT
 | 
					 | 
				
			||||||
		DECLARE @PreviousItemID AS INT
 | 
					 | 
				
			||||||
		DECLARE @ExternalChildCount AS INT
 | 
					 | 
				
			||||||
		DECLARE @ExternalCount AS INT
 | 
					 | 
				
			||||||
		DECLARE @Path AS VARCHAR(MAX)
 | 
					 | 
				
			||||||
		DECLARE @Children AS TABLE
 | 
					 | 
				
			||||||
		(
 | 
					 | 
				
			||||||
			ItemID INT PRIMARY KEY,
 | 
					 | 
				
			||||||
			ContentID INT
 | 
					 | 
				
			||||||
		)
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
	if exists (select * from tblitems where itemid = @ItemID and DeleteStatus !=0)
 | 
					 | 
				
			||||||
		BEGIN
 | 
					 | 
				
			||||||
			RAISERROR ('###Cannot Paste Step###This current step has been deleted in another session',16,1)
 | 
					 | 
				
			||||||
			RETURN
 | 
					 | 
				
			||||||
		END
 | 
					 | 
				
			||||||
		-- First check if the replaced item can be deleted, i.e. it doesn't have transitions
 | 
					 | 
				
			||||||
		-- pointing to it or children.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		DECLARE @ExternalTrans TABLE
 | 
					 | 
				
			||||||
		(
 | 
					 | 
				
			||||||
			[FromItemID] int,
 | 
					 | 
				
			||||||
			[TransitionID] [int] NOT NULL,
 | 
					 | 
				
			||||||
			[FromID] [int] NOT NULL,
 | 
					 | 
				
			||||||
			[ToID] [int] NOT NULL,
 | 
					 | 
				
			||||||
			[RangeID] [int] NOT NULL,
 | 
					 | 
				
			||||||
			[Config] [nvarchar](max) NULL
 | 
					 | 
				
			||||||
		)
 | 
					 | 
				
			||||||
		SET NOCOUNT ON
 | 
					 | 
				
			||||||
	DECLARE @DeleteID int
 | 
					 | 
				
			||||||
	INSERT INTO DeleteLog (UserID) VALUES (@UserID)
 | 
					 | 
				
			||||||
	SELECT @DeleteID = SCOPE_IDENTITY()
 | 
					 | 
				
			||||||
		SELECT @ContentID = ContentID, @PreviousItemID = PreviousID FROM Items WHERE ItemID = @ItemID
 | 
					 | 
				
			||||||
		SELECT @NextItemID = ItemID FROM Items WHERE PreviousID = @ItemID
 | 
					 | 
				
			||||||
		--SELECT @ExternalCount = count(*) FROM vefn_FindExternalTransitions(@ItemID)
 | 
					 | 
				
			||||||
		SELECT @ExternalChildCount = count(*) FROM vefn_FindExternalChildTransitions(@ItemID)
 | 
					 | 
				
			||||||
		SET @Path = [dbo].[ve_GetShortPath](@ItemID)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		--IF @ExternalCount > 0  AND @NextItemID is null
 | 
					 | 
				
			||||||
		--BEGIN
 | 
					 | 
				
			||||||
		--	RAISERROR ('###Cannot Delete Item###Step %d has External Transitions and has no next step - (%s)',16,1,@ItemID,@Path)
 | 
					 | 
				
			||||||
		--	RETURN
 | 
					 | 
				
			||||||
		--END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		IF @ExternalChildCount > 0
 | 
					 | 
				
			||||||
		BEGIN
 | 
					 | 
				
			||||||
			RAISERROR ('###Cannot Delete Item###Step %d has External Transitions to it''s children - (%s)',16,1,@ItemID,@Path)
 | 
					 | 
				
			||||||
			RETURN
 | 
					 | 
				
			||||||
		END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		-- Copy the item, 'NewItemID' represents the new item(s)
 | 
					 | 
				
			||||||
		-- DestFormatID is the formatid for the destination parent's format
 | 
					 | 
				
			||||||
		DECLARE @DestFormatID int
 | 
					 | 
				
			||||||
		SET @DestFormatID = .dbo.vefn_GetInheritedFormat(@ItemID, 0)
 | 
					 | 
				
			||||||
		EXECUTE ReplaceItemAndChildren @StartItemID, @DestFormatID, @UserID, @NewItemID OUTPUT
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		-- Adjust the next/previous to point to the new item
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		DECLARE @PreviousID int
 | 
					 | 
				
			||||||
		SELECT @PreviousID = [PreviousID]
 | 
					 | 
				
			||||||
			FROM [ITEMS] II
 | 
					 | 
				
			||||||
			WHERE [ItemID]=@ItemID
 | 
					 | 
				
			||||||
		UPDATE [ITEMS] SET [PreviousID]=@PreviousID where [ItemID]=@NewItemID
 | 
					 | 
				
			||||||
		UPDATE [CONTENTS] SET [Type]=@Type
 | 
					 | 
				
			||||||
			FROM [CONTENTS] CC JOIN [ITEMS] ii ON CC.[ContentID]=II.[ContentID]
 | 
					 | 
				
			||||||
			WHERE [ItemID]=@NewItemID
 | 
					 | 
				
			||||||
		UPDATE [ITEMS] SET [PreviousID]=@NewItemID where [PreviousID]=@ItemID
 | 
					 | 
				
			||||||
		UPDATE [PARTS] SET [ItemID]=@NewItemID where [ItemID]=@ItemID
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		-- UPDATE DocVersion if this was a procedure
 | 
					 | 
				
			||||||
		UPDATE DocVersions SET ItemID=@NewItemID where ItemID = @ItemID
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		-- If there were 'external transitions' that pointed to the original
 | 
					 | 
				
			||||||
		-- top replaced step, adjust them to point to the new top.
 | 
					 | 
				
			||||||
		INSERT INTO @ExternalTrans SELECT * FROM vefn_FindExternalTransitions(@ItemID)
 | 
					 | 
				
			||||||
	OPTION (MAXRECURSION 10000)
 | 
					 | 
				
			||||||
		IF (SELECT COUNT(*) from @ExternalTrans) > 0
 | 
					 | 
				
			||||||
		BEGIN
 | 
					 | 
				
			||||||
			-- Update content records for the transitions
 | 
					 | 
				
			||||||
			Update CC
 | 
					 | 
				
			||||||
				Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ItemID,@NewItemID)
 | 
					 | 
				
			||||||
			From CONTENTS CC
 | 
					 | 
				
			||||||
				JOIN Transitions TT ON TT.FromID = CC.ContentID
 | 
					 | 
				
			||||||
				WHERE TransitionID in(Select TransitionID from @ExternalTrans)
 | 
					 | 
				
			||||||
			-- Update transitions that point to @ItemID to Point to @NextItemID
 | 
					 | 
				
			||||||
			UPDATE TRANSITIONS
 | 
					 | 
				
			||||||
				SET ToID = case when ToID = @ItemID then @NewItemID else ToID END,
 | 
					 | 
				
			||||||
				RangeID = case when RangeID = @ItemID then @NewItemID else RangeID END
 | 
					 | 
				
			||||||
				WHERE TransitionID in(Select TransitionID from @ExternalTrans)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			DECLARE @typeID int -- AnnotationType
 | 
					 | 
				
			||||||
			SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required'
 | 
					 | 
				
			||||||
			IF(@typeID IS NULL)
 | 
					 | 
				
			||||||
			BEGIN
 | 
					 | 
				
			||||||
				INSERT INTO [AnnotationTypes]	([Name],[UserID])	VALUES	('Verification Required','Volian')
 | 
					 | 
				
			||||||
				SELECT @typeID = SCOPE_IDENTITY()
 | 
					 | 
				
			||||||
			END
 | 
					 | 
				
			||||||
			-- Add 'Verification Required' annotions for transtions that pointed to top step
 | 
					 | 
				
			||||||
			-- and need to point to
 | 
					 | 
				
			||||||
			INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID])	
 | 
					 | 
				
			||||||
			SELECT ItemID, @typeID,'Verify Replaced Step Transition Destination',@UserID
 | 
					 | 
				
			||||||
				FROM Items where ItemID in (SELECT FromItemID FROM @ExternalTrans)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		END
 | 
					 | 
				
			||||||
		-- Remove the old one
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		-- Get list of Children
 | 
					 | 
				
			||||||
		INSERT INTO @Children SELECT * FROM vefn_ChildItems(@ItemID)
 | 
					 | 
				
			||||||
		-- Delete Annotations for @ItemID and children
 | 
					 | 
				
			||||||
		DELETE from Annotations where ItemID in(Select ItemID from @Children)
 | 
					 | 
				
			||||||
		-- Delete Details associated with @ContentID and children
 | 
					 | 
				
			||||||
		DELETE from Details where ContentID in(Select ContentID from @Children)
 | 
					 | 
				
			||||||
		-- Delete Grids associated with @ContentID and children
 | 
					 | 
				
			||||||
		DELETE from Grids where ContentID in(Select ContentID from @Children)
 | 
					 | 
				
			||||||
		-- Delete Images associated with @ContentID and children
 | 
					 | 
				
			||||||
		DELETE from Images where ContentID in(Select ContentID from @Children)
 | 
					 | 
				
			||||||
		-- Delete Entries associated with @ContentID and children
 | 
					 | 
				
			||||||
		DELETE from Entries where ContentID in(Select ContentID from @Children)
 | 
					 | 
				
			||||||
		-- Delete ROUsages associated with @ContentID and children
 | 
					 | 
				
			||||||
		DELETE from RoUsages where ContentID in(Select ContentID from @Children)
 | 
					 | 
				
			||||||
		-- Delete ZTransitions records associated with @ContentID and children
 | 
					 | 
				
			||||||
		DELETE FROM ZTransitions where TransitionID
 | 
					 | 
				
			||||||
			in(SELECT TransitionID from Transitions where FromID in(SELECT ContentID FROM @Children) or FromID = @ContentID)
 | 
					 | 
				
			||||||
		-- Delete Transitions associated with @ContentID and children
 | 
					 | 
				
			||||||
		DELETE FROM Transitions where FromID in(SELECT ContentID FROM @Children) or FromID = @ContentID
 | 
					 | 
				
			||||||
		-- Delete Parts associated with @ContentID and children
 | 
					 | 
				
			||||||
		DELETE from Parts where ContentID in(Select ContentID from @Children)
 | 
					 | 
				
			||||||
		-- Delete ZContents associated with @ContentID and children
 | 
					 | 
				
			||||||
		DELETE from ZContents where ContentID in(Select ContentID from @Children)
 | 
					 | 
				
			||||||
		-- Disconnect Items from Each Other
 | 
					 | 
				
			||||||
		DELETE from Items where ItemID in(Select ItemID from @Children) and PreviousID Is Not Null
 | 
					 | 
				
			||||||
		-- Disconnect Items to be deleted from each other
 | 
					 | 
				
			||||||
		Update Items set PreviousID = null where ItemID in (Select ItemID from @Children) and PreviousID Is Not Null
 | 
					 | 
				
			||||||
		-- Delete Item Records
 | 
					 | 
				
			||||||
		DELETE from Items where ItemID in(Select ItemID from @Children)
 | 
					 | 
				
			||||||
		-- DELETE Contents
 | 
					 | 
				
			||||||
		DELETE from Contents where ContentID in(Select ContentID from @Children)
 | 
					 | 
				
			||||||
--delete from itemaudits where itemid = @newitemid
 | 
					 | 
				
			||||||
delete from itemaudits where itemid in (select itemid from vefn_ChildItems(@newitemid))
 | 
					 | 
				
			||||||
--delete from contentaudits where contentid = (select contentid from items where itemid = @newitemid)
 | 
					 | 
				
			||||||
delete from contentaudits where contentid in (select contentid from vefn_ChildItems(@newitemid))
 | 
					 | 
				
			||||||
	DELETE from DeleteLog where DeleteID = @DeleteID
 | 
					 | 
				
			||||||
	IF( @@TRANCOUNT > 0 ) COMMIT
 | 
					 | 
				
			||||||
	EXECUTE GetItem @NewItemID
 | 
					 | 
				
			||||||
END TRY
 | 
					 | 
				
			||||||
BEGIN CATCH -- Catch Block
 | 
					 | 
				
			||||||
	IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level
 | 
					 | 
				
			||||||
 	ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit.  Top level will rollback
 | 
					 | 
				
			||||||
	EXEC vlnErrorHandler
 | 
					 | 
				
			||||||
END CATCH
 | 
					 | 
				
			||||||
go
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[CopyItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
 | 
					 | 
				
			||||||
	DROP PROCEDURE [CopyItemAndChildren];
 | 
					 | 
				
			||||||
GO
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	/*****************************************************************************
 | 
					 | 
				
			||||||
	   Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
 | 
					 | 
				
			||||||
		   Copyright 2024 - Volian Enterprises, Inc. All rights reserved.
 | 
					 | 
				
			||||||
	*****************************************************************************/
 | 
					 | 
				
			||||||
	/*
 | 
					 | 
				
			||||||
	==========================================================================================================
 | 
					 | 
				
			||||||
	 Author:		Kevin Laskey
 | 
					 | 
				
			||||||
	 Create Date:	07/15/2024
 | 
					 | 
				
			||||||
	 Description:	B2024-041: "Copy of" is no longer being appended for paste before/after
 | 
					 | 
				
			||||||
	==========================================================================================================
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/****** Object:  StoredProcedure [dbo].[CopyItemAndChildren]    Script Date: 7/15/2024 10:01:59 AM ******/
 | 
					 | 
				
			||||||
SET ANSI_NULLS ON
 | 
					 | 
				
			||||||
GO
 | 
					 | 
				
			||||||
SET QUOTED_IDENTIFIER ON
 | 
					 | 
				
			||||||
GO
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
/*****************************************************************************
 | 
					 | 
				
			||||||
   Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
 | 
					 | 
				
			||||||
       Copyright 2012 - Volian Enterprises, Inc. All rights reserved.
 | 
					 | 
				
			||||||
*****************************************************************************/
 | 
					 | 
				
			||||||
CREATE PROCEDURE [dbo].[CopyItemAndChildren]
 | 
					 | 
				
			||||||
(
 | 
					 | 
				
			||||||
	@StartItemID INT,
 | 
					 | 
				
			||||||
	@DestFormatID INT,
 | 
					 | 
				
			||||||
	@UserID NVARCHAR(100),
 | 
					 | 
				
			||||||
	@NewStartItemID int output
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
WITH EXECUTE AS OWNER
 | 
					 | 
				
			||||||
AS
 | 
					 | 
				
			||||||
BEGIN TRY -- Try Block
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
--+-----------------------------------------------------------------+
 | 
					 | 
				
			||||||
--& BEGIN TRANSACTION to make these changes temporary               &
 | 
					 | 
				
			||||||
--+-----------------------------------------------------------------+
 | 
					 | 
				
			||||||
	BEGIN TRANSACTION
 | 
					 | 
				
			||||||
	if exists (select * from tblitems where itemid = @StartItemID and DeleteStatus !=0)
 | 
					 | 
				
			||||||
		BEGIN
 | 
					 | 
				
			||||||
			RAISERROR ('###Cannot Paste Step###This step has been deleted',16,1)
 | 
					 | 
				
			||||||
			RETURN
 | 
					 | 
				
			||||||
		END
 | 
					 | 
				
			||||||
DECLARE @Children AS TABLE
 | 
					 | 
				
			||||||
(
 | 
					 | 
				
			||||||
	ItemID INT PRIMARY KEY,
 | 
					 | 
				
			||||||
	NewItemID INT,
 | 
					 | 
				
			||||||
	ContentID INT,
 | 
					 | 
				
			||||||
	NewContentID INT,
 | 
					 | 
				
			||||||
	FormatID INT,
 | 
					 | 
				
			||||||
	NewFormatID INT
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
DECLARE @NewDocuments AS TABLE
 | 
					 | 
				
			||||||
(
 | 
					 | 
				
			||||||
	DocID INT PRIMARY KEY,
 | 
					 | 
				
			||||||
	NewDocID INT
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
-- Locals
 | 
					 | 
				
			||||||
DECLARE @DTS DATETIME -- DTS of all New Items
 | 
					 | 
				
			||||||
DECLARE @StartContentID INT
 | 
					 | 
				
			||||||
Select @StartContentID = ContentID from Items where ItemID = @StartItemID
 | 
					 | 
				
			||||||
SET @DTS = GETDATE() -- Get the current Date and Time
 | 
					 | 
				
			||||||
-- Get a list of all of the Items to be copied based upon StartItemID and EndItemID
 | 
					 | 
				
			||||||
-- If the StartItemID = EndItemID then it is a single item and it's children
 | 
					 | 
				
			||||||
INSERT INTO @Children SELECT ItemID,ItemID,ContentID,ContentID,FormatID,FormatID FROM vefn_ChildItemsRange(@StartItemID,@StartItemID,null)
 | 
					 | 
				
			||||||
-- <<< Copy Contents >>>
 | 
					 | 
				
			||||||
-- Create new content rows to match the existing rows.  Set the type to the Current ContentID temporarily
 | 
					 | 
				
			||||||
-- so that the new content rows can be associated with the existing content rows.
 | 
					 | 
				
			||||||
INSERT INTO Contents
 | 
					 | 
				
			||||||
  ([Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID])
 | 
					 | 
				
			||||||
	select CASE when [ContentID] = @StartContentID and [Type]<20000 then 'Copy Of ' + [Number] else [Number] end,
 | 
					 | 
				
			||||||
	[Text],[ContentID],[FormatID],[Config],@DTS,@UserID
 | 
					 | 
				
			||||||
 from Contents where ContentID in(Select ContentID from @Children)
 | 
					 | 
				
			||||||
-- Update the @Children with the NewConentIDs
 | 
					 | 
				
			||||||
--print 'A	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
UPDATE NN set NN.NewContentID = CC.ContentID
 | 
					 | 
				
			||||||
From Contents CC
 | 
					 | 
				
			||||||
Join @Children NN on NN.ContentID = CC.Type AND CC.DTS = @DTS and CC.UserID = @UserID
 | 
					 | 
				
			||||||
-- Reset the Type column in the Contents table with the Type column from the original Records.
 | 
					 | 
				
			||||||
--print 'B	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
DECLARE @SourceType INT
 | 
					 | 
				
			||||||
Select @SourceType = Type from Contents where ContentID = @StartContentID
 | 
					 | 
				
			||||||
if @SourceType =  0
 | 
					 | 
				
			||||||
	BEGIN
 | 
					 | 
				
			||||||
		UPDATE CC set CC.Type = CC2.Type, CC.DTS = CC2.DTS, CC.UserID = CC2.UserID
 | 
					 | 
				
			||||||
		From Contents CC
 | 
					 | 
				
			||||||
		Join @Children NN on NN.NewContentID = CC.ContentID
 | 
					 | 
				
			||||||
		Join Contents CC2 on NN.ContentID = CC2.ContentID
 | 
					 | 
				
			||||||
	END
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
	BEGIN
 | 
					 | 
				
			||||||
UPDATE CC set CC.Type = CC2.Type
 | 
					 | 
				
			||||||
From Contents CC
 | 
					 | 
				
			||||||
Join @Children NN on NN.NewContentID = CC.ContentID
 | 
					 | 
				
			||||||
Join Contents CC2 on NN.ContentID = CC2.ContentID
 | 
					 | 
				
			||||||
	END
 | 
					 | 
				
			||||||
--print 'B1	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
-- Contents are done
 | 
					 | 
				
			||||||
	-- SELECT * From Contents where DTS = @DTS and UserID = @UserID
 | 
					 | 
				
			||||||
-- <<< Copy Grids >>>
 | 
					 | 
				
			||||||
INSERT INTO [Grids]([ContentID],[Data],[Config],[DTS],[UserID])
 | 
					 | 
				
			||||||
	SELECT NN.[NewContentID],[Data],[Config],@DTS,@UserID
 | 
					 | 
				
			||||||
		FROM [Grids] GG Join @Children NN on GG.ContentID = NN.ContentID
 | 
					 | 
				
			||||||
-- <<< Copy Images >>>
 | 
					 | 
				
			||||||
--print 'B2	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
INSERT INTO [Images]([ContentID],[ImageType],[FileName],[Data],[Config],[DTS],[UserID])
 | 
					 | 
				
			||||||
	SELECT NN.[NewContentID],[ImageType],[FileName],[Data],[Config],@DTS,@UserID
 | 
					 | 
				
			||||||
		FROM [Images] II Join @Children NN on II.ContentID = NN.ContentID
 | 
					 | 
				
			||||||
-- Create new item rows based upon the current item rows and the @Children table, with the NewContentIDs
 | 
					 | 
				
			||||||
--print 'B3	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
INSERT INTO [Items] ([PreviousID],[ContentID],[DTS],[UserID])
 | 
					 | 
				
			||||||
     SELECT II.[PreviousID], -- Leave the PreviousID as is for now
 | 
					 | 
				
			||||||
			NN.NewContentID, @DTS, @UserID
 | 
					 | 
				
			||||||
			from @Children NN
 | 
					 | 
				
			||||||
			join Items II on II.ContentID = NN.ContentID
 | 
					 | 
				
			||||||
-- Update the @Children with the NewItemIDs
 | 
					 | 
				
			||||||
--print 'B4	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
UPDATE NN set NN.NewItemID = II.ItemID
 | 
					 | 
				
			||||||
From Items II
 | 
					 | 
				
			||||||
Join @Children NN on NN.NewContentID = II.ContentID AND II.DTS = @DTS and II.UserID = @UserID
 | 
					 | 
				
			||||||
DECLARE @NewItemID int
 | 
					 | 
				
			||||||
SELECT @NewItemID = NewItemID
 | 
					 | 
				
			||||||
	FROM @Children
 | 
					 | 
				
			||||||
	WHERE ItemID = @StartItemID
 | 
					 | 
				
			||||||
--print 'B5	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
UPDATE NN SET NN.[NewFormatID] = CC.[FormatID]
 | 
					 | 
				
			||||||
	FROM @Children NN
 | 
					 | 
				
			||||||
	Join vefn_ChildItemsRange(@NewItemID,@NewItemID,@DestFormatID) CC
 | 
					 | 
				
			||||||
	ON NN.NewItemID = CC.ItemID
 | 
					 | 
				
			||||||
-- The @Children table is now complete
 | 
					 | 
				
			||||||
	--SELECT * From @Children
 | 
					 | 
				
			||||||
-- Update the PreviousID in the new Item rows, to the new ItemIDs based upon the old ItemIDs
 | 
					 | 
				
			||||||
--print 'B6	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
Update II Set II.[PreviousID] = NN.NewItemID
 | 
					 | 
				
			||||||
from Items II
 | 
					 | 
				
			||||||
Join @Children NN on NN.ItemID = II.PreviousID AND II.DTS = @DTS and II.UserID = @UserID
 | 
					 | 
				
			||||||
-- Get the new ItemIDs based upon the old ItemIDs
 | 
					 | 
				
			||||||
SELECT @NewStartItemID = NewItemID from @Children where ItemID = @StartItemID
 | 
					 | 
				
			||||||
--SELECT @NewEndItemID = NewItemID from @Children where ItemID = @EndItemID
 | 
					 | 
				
			||||||
-- Set the PreviousID for the starting Item to null temporarily.
 | 
					 | 
				
			||||||
-- This will be adjusted based upon where the step is inserted.
 | 
					 | 
				
			||||||
--print 'B7	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
Update Items Set PreviousID = null where ItemID = @NewStartItemID
 | 
					 | 
				
			||||||
if @SourceType =  0
 | 
					 | 
				
			||||||
	BEGIN
 | 
					 | 
				
			||||||
		UPDATE II SET II.DTS = II2.DTS, II.UserID = II2.UserID
 | 
					 | 
				
			||||||
		From Items II
 | 
					 | 
				
			||||||
		Join @Children NN on NN.NewItemID = II.ItemID
 | 
					 | 
				
			||||||
		Join Items II2 on NN.ItemID = II2.ItemID
 | 
					 | 
				
			||||||
		WHERE NN.ItemID = @StartItemID
 | 
					 | 
				
			||||||
	END
 | 
					 | 
				
			||||||
--print 'C	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
-- Items are done
 | 
					 | 
				
			||||||
	--SELECT * From Items where DTS = @DTS and UserID = @UserID
 | 
					 | 
				
			||||||
-- <<< Copy Parts >>>
 | 
					 | 
				
			||||||
INSERT INTO [Parts] ([ContentID],[FromType],[ItemID],[DTS],[UserID])
 | 
					 | 
				
			||||||
Select NNF.NewContentID,[FromType],NNT.NewItemID, @DTS, @UserID from Parts PP
 | 
					 | 
				
			||||||
JOIN @Children NNF on PP.ContentID = NNF.ContentID
 | 
					 | 
				
			||||||
JOIN @Children NNT on PP.ItemID = NNT.ItemID
 | 
					 | 
				
			||||||
--print 'D	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
-- Parts are done
 | 
					 | 
				
			||||||
	-- SELECT * From Parts where DTS = @DTS and UserID = @UserID
 | 
					 | 
				
			||||||
-- <<< Copy Annotations >>>
 | 
					 | 
				
			||||||
INSERT INTO [Annotations] ([ItemID],[TypeID],[RtfText],[SearchText],[Config],[DTS],[UserID])
 | 
					 | 
				
			||||||
     Select NewItemID, TypeID, RtfText, SearchText, Config, @DTS, @UserID
 | 
					 | 
				
			||||||
			from Annotations AA Join @Children NN on AA.ItemID = NN.ItemID
 | 
					 | 
				
			||||||
--print 'E	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
-- Annotations are done
 | 
					 | 
				
			||||||
	-- SELECT * From Annotations where DTS = @DTS and UserID = @UserID
 | 
					 | 
				
			||||||
-- <<< Copy Documents and Entries>>>
 | 
					 | 
				
			||||||
-- logic to create Entries for Library Documents
 | 
					 | 
				
			||||||
INSERT INTO [Entries] ([ContentID],[DocID],[DTS],[UserID])
 | 
					 | 
				
			||||||
	SELECT NN.[NewContentID],EE.[DocID],@DTS,@UserID
 | 
					 | 
				
			||||||
  FROM [Entries] EE JOIN @Children NN on NN.ContentID = EE.ContentID
 | 
					 | 
				
			||||||
	JOIN [Documents] DD on EE.[DocID] = DD.[DocID] and Isnull(LibTitle,'') <> ''
 | 
					 | 
				
			||||||
-- Logic to create new documents for any documents used that do not have libtitles
 | 
					 | 
				
			||||||
INSERT INTO [Documents] ([LibTitle],[DocContent],[DocAscii],[Config],[DTS],[UserID],[FileExtension])
 | 
					 | 
				
			||||||
  OUTPUT CAST(INSERTED.[LibTitle] as INT),INSERTED.[DocID] INTO @NewDocuments
 | 
					 | 
				
			||||||
	SELECT str(DD.[DocID]),[DocContent],[DocAscii],[Config],@DTS,@UserID,[FileExtension]
 | 
					 | 
				
			||||||
  FROM [Entries] EE JOIN @Children NN on NN.ContentID = EE.ContentID
 | 
					 | 
				
			||||||
	JOIN [Documents] DD on EE.[DocID] = DD.[DocID] and Isnull(LibTitle,'') = ''
 | 
					 | 
				
			||||||
UPDATE DD SET LibTitle = ''
 | 
					 | 
				
			||||||
	FROM Documents DD JOIN @NewDocuments ND on DD.[DocID] = ND.[NewDocID]
 | 
					 | 
				
			||||||
	where DTS = @DTS and UserID = @UserID
 | 
					 | 
				
			||||||
--print 'F	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
-- Documents are Done
 | 
					 | 
				
			||||||
	-- SELECT * From Documents where DTS = @DTS and UserID = @UserID
 | 
					 | 
				
			||||||
-- Logic to create entries for these newly created documents
 | 
					 | 
				
			||||||
INSERT INTO [Entries] ([ContentID],[DocID],[DTS],[UserID])
 | 
					 | 
				
			||||||
	SELECT NN.[NewContentID],ND.[NewDocID],@DTS,@UserID
 | 
					 | 
				
			||||||
  FROM [Entries] EE JOIN @Children NN on NN.ContentID = EE.ContentID
 | 
					 | 
				
			||||||
	JOIN @NewDocuments ND on EE.[DocID] = ND.[DocID]
 | 
					 | 
				
			||||||
-- Logic to Create DROUsages for these newly created documents
 | 
					 | 
				
			||||||
INSERT INTO [DROUsages] ([DocID],[ROID],[Config],[DTS],[UserID],[RODbID])
 | 
					 | 
				
			||||||
 	SELECT ND.[NewDocID],[ROID],[Config],@DTS,@UserID,[RODbID]
 | 
					 | 
				
			||||||
  FROM [DROUsages] RR
 | 
					 | 
				
			||||||
	JOIN @NewDocuments ND on RR.[DocID] = ND.[DocID]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
--print 'G	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
-- Entries are done
 | 
					 | 
				
			||||||
	-- SELECT * From Entries EE JOIN Documents DD on ee.DocID = DD.DocID where EE.DTS = @DTS and EE.UserID = @UserID
 | 
					 | 
				
			||||||
-- <<< Copy RoUsages >>>
 | 
					 | 
				
			||||||
INSERT INTO [RoUsages] ([ContentID],[ROID],[Config],[DTS],[UserID],[RODbID])
 | 
					 | 
				
			||||||
	SELECT NN.[NewContentID],CAST([ROUsageID] as nvarchar(16)),[Config],@DTS,@UserID,[RODbID]
 | 
					 | 
				
			||||||
		FROM [RoUsages] RR Join @Children NN on RR.ContentID = NN.ContentID
 | 
					 | 
				
			||||||
-- Update content records for newly copied records to use correct RO usage ids in the RO tags
 | 
					 | 
				
			||||||
DECLARE @RowsAffected int
 | 
					 | 
				
			||||||
SET @RowsAffected=1
 | 
					 | 
				
			||||||
WHILE @RowsAffected > 0
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
	UPDATE CC SET [TEXT] = C2.NewText
 | 
					 | 
				
			||||||
	FROM CONTENTS CC
 | 
					 | 
				
			||||||
	JOIN (SELECT C1.ContentID, .dbo.vefn_FixROText(C1.Text, CAST([ROID] as int), [ROUsageID]) NewText
 | 
					 | 
				
			||||||
	FROM CONTENTS C1
 | 
					 | 
				
			||||||
	JOIN @Children NN on C1.ContentID = NN.NewContentID
 | 
					 | 
				
			||||||
	JOIN RoUsages RO on NN.NewContentID = RO.ContentID where Len([ROID]) < 12) C2 ON CC.ContentID = C2.ContentID
 | 
					 | 
				
			||||||
	WHERE [TEXT] <> C2.NewText
 | 
					 | 
				
			||||||
	SET @RowsAffected = @@RowCount
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
-- Update grid records for newly copied records to use correct RO usage ids in the RO tags
 | 
					 | 
				
			||||||
SET @RowsAffected=1
 | 
					 | 
				
			||||||
WHILE @RowsAffected > 0
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
	UPDATE GG SET [Data] = G2.NewData
 | 
					 | 
				
			||||||
	FROM GRIDS GG
 | 
					 | 
				
			||||||
	JOIN (SELECT G1.ContentID, .dbo.vefn_FixROData(G1.Data, CAST([ROID] as int), [ROUsageID]) NewData
 | 
					 | 
				
			||||||
	FROM GRIDS G1
 | 
					 | 
				
			||||||
	JOIN @Children NN on G1.ContentID = NN.NewContentID
 | 
					 | 
				
			||||||
	JOIN RoUsages RO on NN.NewContentID = RO.ContentID where Len([ROID]) < 12) G2 ON GG.ContentID = G2.ContentID
 | 
					 | 
				
			||||||
	WHERE Cast([Data] as nvarchar(max)) <> cast(G2.NewData as nvarchar(max))
 | 
					 | 
				
			||||||
	SET @RowsAffected = @@RowCount
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
UPDATE RON SET [ROID] = ROO.[ROID]
 | 
					 | 
				
			||||||
	FROM RoUsages RON
 | 
					 | 
				
			||||||
	JOIN @Children NN on RON.ContentID = NN.NewContentID
 | 
					 | 
				
			||||||
	JOIN RoUsages ROO on CAST(RON.ROID as int) = ROO.RoUsageID
 | 
					 | 
				
			||||||
	where Len(RON.[ROID]) < 12
 | 
					 | 
				
			||||||
--print 'H	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
-- RoUsages are done
 | 
					 | 
				
			||||||
	-- SELECT * From RoUsages where DTS = @DTS and UserID = @UserID
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- <<< Copy Transtions >>>
 | 
					 | 
				
			||||||
-- Note that the inserted record has the 'TranType' field set to old transitionid.  This is done
 | 
					 | 
				
			||||||
-- so that the next step can replace the old transitionid with the new transitionid in the
 | 
					 | 
				
			||||||
-- content record's transition tokens.  The TranType gets reset after the content records are
 | 
					 | 
				
			||||||
-- updated.
 | 
					 | 
				
			||||||
-- Also note that the 'toid/rangeid' may need converted to newly copied ids or may not.  If it's
 | 
					 | 
				
			||||||
-- not a range, then it always is converted to new, if there is a new.  If it's a range, both
 | 
					 | 
				
			||||||
-- the toid & the rangeid must be new in order for the conversion to be correct.  You cannot
 | 
					 | 
				
			||||||
-- have part of the range pointing to the new and part of the range pointing to the original
 | 
					 | 
				
			||||||
-- locations.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
INSERT INTO .[dbo].[Transitions] ([FromID],[ToID],[RangeID],[IsRange],[TranType],[Config],[DTS],[UserID])
 | 
					 | 
				
			||||||
	SELECT NNF.[NewContentID],
 | 
					 | 
				
			||||||
		-- if both toid & range are null, use the original toid & rangeid
 | 
					 | 
				
			||||||
		CASE WHEN NNT.[NewItemID] is null or NNR.[NewItemID] is null THEN [ToID] ELSE NNT.[NewItemID] END,
 | 
					 | 
				
			||||||
		CASE WHEN NNT.[NewItemID] is null or NNR.[NewItemID] is null THEN [RangeID] ELSE NNR.[NewItemID] END,
 | 
					 | 
				
			||||||
		[IsRange],[TransitionID],[Config],@DTS,@UserID
 | 
					 | 
				
			||||||
	FROM .[dbo].[Transitions] TT
 | 
					 | 
				
			||||||
	JOIN @Children NNF on TT.[FromID] = NNF.[ContentID]
 | 
					 | 
				
			||||||
	LEFT JOIN @Children NNT on TT.[ToID] = NNT.[ItemID]
 | 
					 | 
				
			||||||
	LEFT JOIN @Children NNR on TT.[RangeID] = NNR.[ItemID]
 | 
					 | 
				
			||||||
--print 'H1	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
-- -- Update content records for newly copied records to use correct TransitionIDs in the Transition tags
 | 
					 | 
				
			||||||
SET @RowsAffected=1
 | 
					 | 
				
			||||||
WHILE @RowsAffected > 0
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
UPDATE CC SET [TEXT] = C2.NewText
 | 
					 | 
				
			||||||
	FROM CONTENTS CC
 | 
					 | 
				
			||||||
	JOIN (SELECT C1.ContentID, .dbo.vefn_FixTransitionTextForCopy(C1.Text, TRO.TransitionID, TRO.TranType,  TRO.[ToID], TRO.[RangeID],TR.[TransitionID], TR.[ToID], TR.[RangeID], .dbo.vefn_GetNewTranType(NN.FormatID, NN.NewFormatID, TRO.TranType)) NewText
 | 
					 | 
				
			||||||
	FROM CONTENTS C1
 | 
					 | 
				
			||||||
	JOIN @Children NN on C1.ContentID = NN.NewContentID
 | 
					 | 
				
			||||||
	JOIN Transitions TR on NN.NewContentID = TR.FromID
 | 
					 | 
				
			||||||
	JOIN Transitions TRO on TR.TranType = TRO.TransitionID) C2 ON CC.ContentID = C2.ContentID
 | 
					 | 
				
			||||||
	WHERE [TEXT] <> C2.NewText
 | 
					 | 
				
			||||||
	SET @RowsAffected = @@RowCount
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
--print 'H2	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
--set nocount off
 | 
					 | 
				
			||||||
-- -- Update grid records for newly copied records to use correct TransitionIDs in the Transition tags
 | 
					 | 
				
			||||||
declare @grids table
 | 
					 | 
				
			||||||
(
 | 
					 | 
				
			||||||
contentid int primary key,
 | 
					 | 
				
			||||||
data xml
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
insert into @grids select gg.contentid,gg.data from GRIDS GG
 | 
					 | 
				
			||||||
	where gg.contentid in (select nn.newcontentid from
 | 
					 | 
				
			||||||
	@Children NN
 | 
					 | 
				
			||||||
	JOIN Transitions TR on NN.NewContentID = TR.FromID
 | 
					 | 
				
			||||||
	JOIN Transitions TRO on TR.TranType = TRO.TransitionID)
 | 
					 | 
				
			||||||
--print 'H2.1	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
--select * from @grids
 | 
					 | 
				
			||||||
SET @RowsAffected=1
 | 
					 | 
				
			||||||
WHILE @RowsAffected > 0
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
UPDATE GG SET [DATA] = G2.NewData
 | 
					 | 
				
			||||||
	FROM @GRIDS GG
 | 
					 | 
				
			||||||
	JOIN (SELECT G1.ContentID, .dbo.vefn_FixTransitionDataForCopy(G1.Data, TRO.TransitionID, TRO.TranType,  TRO.[ToID], TRO.[RangeID],TR.[TransitionID], TR.[ToID], TR.[RangeID], .dbo.vefn_GetNewTranType(NN.FormatID, NN.NewFormatID, TRO.TranType)) NewData
 | 
					 | 
				
			||||||
	FROM @GRIDS G1
 | 
					 | 
				
			||||||
	JOIN @Children NN on G1.ContentID = NN.NewContentID
 | 
					 | 
				
			||||||
	JOIN Transitions TR on NN.NewContentID = TR.FromID
 | 
					 | 
				
			||||||
	JOIN Transitions TRO on TR.TranType = TRO.TransitionID) G2 ON GG.ContentID = G2.ContentID
 | 
					 | 
				
			||||||
	WHERE Cast([DATA] as nvarchar(max)) <> CAST(G2.NewData as nvarchar(max))
 | 
					 | 
				
			||||||
	SET @RowsAffected = @@RowCount
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
--print 'H2.2	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
update GG set data = g1.data from Grids gg join @grids g1 on gg.contentid = g1.contentid
 | 
					 | 
				
			||||||
--print 'H3	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
--set nocount on
 | 
					 | 
				
			||||||
-- Add 'Verification Required' AnnotationType
 | 
					 | 
				
			||||||
	DECLARE @typeID int
 | 
					 | 
				
			||||||
	SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required'
 | 
					 | 
				
			||||||
	IF(@typeID IS NULL)
 | 
					 | 
				
			||||||
	BEGIN
 | 
					 | 
				
			||||||
		INSERT INTO [AnnotationTypes]	([Name],[UserID])	VALUES	('Verification Required','Volian')
 | 
					 | 
				
			||||||
		SELECT @typeID = SCOPE_IDENTITY()
 | 
					 | 
				
			||||||
	END
 | 
					 | 
				
			||||||
	-- Add "Verification Required" Annotation for each Transition whose transition format changes
 | 
					 | 
				
			||||||
INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID])
 | 
					 | 
				
			||||||
		SELECT NN.NewItemID, @typeID,'Verify Transition Format',@UserID
 | 
					 | 
				
			||||||
			FROM Transitions TR
 | 
					 | 
				
			||||||
			JOIN @Children NN on TR.FromID = NN.NewContentID
 | 
					 | 
				
			||||||
			JOIN Transitions TRO on TR.TranType = TRO.TransitionID
 | 
					 | 
				
			||||||
			WHERE .dbo.vefn_CompareTranFormat(NN.FormatID, NN.NewFormatID, TRO.TranType) <> 0
 | 
					 | 
				
			||||||
--print 'H4	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
UPDATE TR SET TR.[TranType] = .dbo.vefn_GetNewTranType(NN.FormatID, NN.NewFormatID, TRO.TranType)
 | 
					 | 
				
			||||||
	FROM Transitions TR
 | 
					 | 
				
			||||||
	JOIN @Children NN on TR.FromID = NN.NewContentID
 | 
					 | 
				
			||||||
	JOIN Transitions TRO on TR.TranType = TRO.TransitionID
 | 
					 | 
				
			||||||
--print 'H5	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
-- Transitions are done
 | 
					 | 
				
			||||||
	-- SELECT * From Transitions where DTS = @DTS and UserID = @UserID
 | 
					 | 
				
			||||||
--print 'Z	' + cast(datediff(s,@dts,getdate()) as varchar(100))
 | 
					 | 
				
			||||||
--foldouts fixing code
 | 
					 | 
				
			||||||
if exists (select * from contents where contentid in (select newcontentid from @children) and config like '%FloatingFoldout%')
 | 
					 | 
				
			||||||
begin
 | 
					 | 
				
			||||||
	--insert into #mytemp
 | 
					 | 
				
			||||||
	select cc.contentid,xsteps.value('@FloatingFoldout','int') oldfoldoutid,(select newitemid 
 | 
					 | 
				
			||||||
	from @children 
 | 
					 | 
				
			||||||
	where itemid = xsteps.value('@FloatingFoldout','int')) newfoldoutid,xconfig 
 | 
					 | 
				
			||||||
	into #mytemp 
 | 
					 | 
				
			||||||
	from (select *,cast(config as xml) xconfig from contents where contentid in (select newcontentid from @children)) cc
 | 
					 | 
				
			||||||
	cross apply xconfig.nodes('Config/Step') tsteps(xsteps)
 | 
					 | 
				
			||||||
	--build @cmd string
 | 
					 | 
				
			||||||
	declare @cmd nvarchar(max)
 | 
					 | 
				
			||||||
	declare cmds cursor for
 | 
					 | 
				
			||||||
	select distinct 'update #mytemp set xconfig.modify(''replace value of (Config/Step/@FloatingFoldout)[1] with "'
 | 
					 | 
				
			||||||
	 + cast(newfoldoutid as varchar(10))
 | 
					 | 
				
			||||||
	 + '"'') where xconfig.value(''(Config/Step/@FloatingFoldout)[1]'',''int'') = '
 | 
					 | 
				
			||||||
	 + cast(oldfoldoutid as varchar(10))
 | 
					 | 
				
			||||||
	from #mytemp
 | 
					 | 
				
			||||||
	--execute cursor over rows
 | 
					 | 
				
			||||||
	open cmds
 | 
					 | 
				
			||||||
	fetch next from cmds into @cmd
 | 
					 | 
				
			||||||
	while @@fetch_status = 0
 | 
					 | 
				
			||||||
	begin
 | 
					 | 
				
			||||||
		exec sp_executesql @cmd
 | 
					 | 
				
			||||||
		fetch next from cmds into @cmd
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
	close cmds
 | 
					 | 
				
			||||||
	deallocate cmds
 | 
					 | 
				
			||||||
	--actually update contents
 | 
					 | 
				
			||||||
	update cc set config = cast(xconfig as varchar(max)) from contents cc join #mytemp mt on cc.contentid = mt.contentid
 | 
					 | 
				
			||||||
	--get rid of #mytemp
 | 
					 | 
				
			||||||
	drop table #mytemp
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
--end foldouts fixing code
 | 
					 | 
				
			||||||
--section start
 | 
					 | 
				
			||||||
DECLARE @NewContentID int
 | 
					 | 
				
			||||||
Select @NewContentID = NewContentID from @Children where ItemID = @StartItemID
 | 
					 | 
				
			||||||
DECLARE @Config varchar(max)
 | 
					 | 
				
			||||||
DECLARE @XConfig xml
 | 
					 | 
				
			||||||
select @Config = config from contents where contentid = @NewContentID
 | 
					 | 
				
			||||||
select @XConfig = cast(@Config as xml)
 | 
					 | 
				
			||||||
if @Config like '%SectionStart%' begin
 | 
					 | 
				
			||||||
	DECLARE @SectionStart int
 | 
					 | 
				
			||||||
	select @SectionStart = xproc.value('@SectionStart','int') from @xconfig.nodes('Config/Procedure') tproc(xproc)
 | 
					 | 
				
			||||||
	DECLARE @NewSectionStart int
 | 
					 | 
				
			||||||
	select @NewSectionStart = newitemid from @children where itemid = @SectionStart
 | 
					 | 
				
			||||||
	DECLARE @cmd2 nvarchar(max)
 | 
					 | 
				
			||||||
	set @cmd2 = '
 | 
					 | 
				
			||||||
		declare @XConfig xml; 
 | 
					 | 
				
			||||||
		set @XConfig = cast(''' + @Config + ''' as xml); 
 | 
					 | 
				
			||||||
		set @XConfig.modify(''replace value of (Config/Procedure/@SectionStart)[1] with "' + cast(@NewSectionStart as nvarchar(10)) + '"''); 
 | 
					 | 
				
			||||||
		update contents set config = cast(@XConfig as varchar(max)) where contentid = ' + cast(@NewContentID as nvarchar(10)) + ';'
 | 
					 | 
				
			||||||
	exec sp_executesql @cmd2
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
--end section start
 | 
					 | 
				
			||||||
	IF( @@TRANCOUNT > 0 ) COMMIT
 | 
					 | 
				
			||||||
END TRY
 | 
					 | 
				
			||||||
BEGIN CATCH -- Catch Block
 | 
					 | 
				
			||||||
	IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level
 | 
					 | 
				
			||||||
 	ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit.  Top level will rollback
 | 
					 | 
				
			||||||
	EXEC vlnErrorHandler
 | 
					 | 
				
			||||||
END CATCH
 | 
					 | 
				
			||||||
Go
 | 
					Go
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						IF (@@Error = 0) PRINT 'Procedure Creation: [CopyItemAndChildren] Succeeded'
 | 
				
			||||||
 | 
						ELSE PRINT 'Procedure Creation: [CopyItemAndChildren] Error on Creation'
 | 
				
			||||||
 | 
						GO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
==========================================================================================================
 | 
					==========================================================================================================
 | 
				
			||||||
 End: C2024-004: KL - Update Copy Replace functionality, (remove ''copy of'')
 | 
					 End: C2024-004: KL - Update Copy Replace functionality, (remove ''copy of'')
 | 
				
			||||||
@@ -23255,6 +22637,275 @@ Go
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					==========================================================================================================
 | 
				
			||||||
 | 
					 Begin: C2024-005: PRL - SPs to support Admin tool to clean Annotations
 | 
				
			||||||
 | 
					==========================================================================================================
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/****** Object:  StoredProcedure [dbo].[deleteAnnotationsDocvByType]    Script Date: 7/11/2024 2:39:59 PM ******/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'deleteAnnotationsDocvByType')
 | 
				
			||||||
 | 
					DROP PROCEDURE [dbo].[deleteAnnotationsDocvByType]
 | 
				
			||||||
 | 
					GO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/****** Object:  StoredProcedure [dbo].[deleteAnnotationsDocvByType]    Script Date: 7/11/2024 2:39:59 PM ******/
 | 
				
			||||||
 | 
					SET ANSI_NULLS ON
 | 
				
			||||||
 | 
					GO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SET QUOTED_IDENTIFIER ON
 | 
				
			||||||
 | 
					GO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/*****************************************************************************
 | 
				
			||||||
 | 
						   Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
 | 
				
			||||||
 | 
							   Copyright 2024 - Volian Enterprises, Inc. All rights reserved.
 | 
				
			||||||
 | 
						*****************************************************************************/
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						==========================================================================================================
 | 
				
			||||||
 | 
						 Author:		Paul Larsen
 | 
				
			||||||
 | 
						 Modified Date:	07/11/2024
 | 
				
			||||||
 | 
						 Description:	Delete Annotations in DocVersions by Annotation Type
 | 
				
			||||||
 | 
						==========================================================================================================
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CREATE procedure [dbo].[deleteAnnotationsDocvByType]
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
						@docvList varchar(MAX),
 | 
				
			||||||
 | 
						@typeid int
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					AS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						DECLARE @docvs TABLE
 | 
				
			||||||
 | 
						(
 | 
				
			||||||
 | 
							RowID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
 | 
				
			||||||
 | 
							DocvVersionID int
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						DECLARE @Annotationitems table
 | 
				
			||||||
 | 
						(
 | 
				
			||||||
 | 
							RowID int NOT NULL IDENTITY(1,1),
 | 
				
			||||||
 | 
							AllItemIDs int		
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						INSERT INTO @docvs (DocvVersionID) (select id from vefn_SplitInt(@docvList, ','))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						DECLARE @cnt int = 0
 | 
				
			||||||
 | 
						DECLARE @cnt2 int
 | 
				
			||||||
 | 
						DECLARE @itemid int
 | 
				
			||||||
 | 
					    DECLARE @i INT
 | 
				
			||||||
 | 
					    SET @i = (SELECT MIN(RowID) FROM @docvs);
 | 
				
			||||||
 | 
						DECLARE @max INT;
 | 
				
			||||||
 | 
					    SET @max = (SELECT MAX(RowID) FROM @docvs);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-- add all itemids relateted to requested Annotation cleaning.
 | 
				
			||||||
 | 
						while (@i <= @max)
 | 
				
			||||||
 | 
						BEGIN
 | 
				
			||||||
 | 
							SELECT @itemid = DocvVersionID from @docvs where RowID = @i
 | 
				
			||||||
 | 
							INSERT INTO @Annotationitems (AllItemIDs)
 | 
				
			||||||
 | 
							(SELECT cir.itemid FROM [vefn_GetVersionItems](@docvList) cir JOIN Annotations an on an.itemid = cir.itemid where an.typeid = @typeid)
 | 
				
			||||||
 | 
							--vefn_ChildItemsRange(@itemid,@itemid,null) cir JOIN Annotations an on an.itemid = cir.itemid where an.typeid = @typeid)
 | 
				
			||||||
 | 
							SET @i = @i + 1;
 | 
				
			||||||
 | 
						END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SELECT @i = MIN(RowID) FROM @docvs;
 | 
				
			||||||
 | 
					    SELECT @max = MAX(RowID) FROM @docvs;		
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-- Delete Annotations
 | 
				
			||||||
 | 
						DELETE FROM Ann 
 | 
				
			||||||
 | 
						FROM tblAnnotations Ann INNER JOIN @Annotationitems AI ON Ann.itemid = AI.AllItemIDs WHERE TypeID = @typeidI beleive the 
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					GO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'deleteAnnotationsProcByType')
 | 
				
			||||||
 | 
					DROP PROCEDURE [dbo].[deleteAnnotationsProcByType]
 | 
				
			||||||
 | 
					GO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/****** Object:  StoredProcedure [dbo].[deleteAnnotationsProcByType]    Script Date: 7/11/2024 2:46:05 PM ******/
 | 
				
			||||||
 | 
					SET ANSI_NULLS ON
 | 
				
			||||||
 | 
					GO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SET QUOTED_IDENTIFIER ON
 | 
				
			||||||
 | 
					GO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/*****************************************************************************
 | 
				
			||||||
 | 
						   Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
 | 
				
			||||||
 | 
							   Copyright 2024 - Volian Enterprises, Inc. All rights reserved.
 | 
				
			||||||
 | 
						*****************************************************************************/
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						==========================================================================================================
 | 
				
			||||||
 | 
						 Author:		Paul Larsen
 | 
				
			||||||
 | 
						 Modified Date:	07/11/2024
 | 
				
			||||||
 | 
						 Description:	Delete Annotations in Procedures by Annotation Type
 | 
				
			||||||
 | 
						==========================================================================================================
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						 
 | 
				
			||||||
 | 
					CREATE procedure [dbo].[deleteAnnotationsProcByType]
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
						@procList varchar(MAX),
 | 
				
			||||||
 | 
						@typeid int
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					AS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						DECLARE @procs TABLE
 | 
				
			||||||
 | 
						(
 | 
				
			||||||
 | 
							RowID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
 | 
				
			||||||
 | 
							ProcItemIDs int
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						DECLARE @Annotationitems table
 | 
				
			||||||
 | 
						(
 | 
				
			||||||
 | 
							RowID int NOT NULL IDENTITY(1,1),
 | 
				
			||||||
 | 
							AllItemIDs int		
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						DECLARE @cnt int = 0
 | 
				
			||||||
 | 
						DECLARE @cnt2 int
 | 
				
			||||||
 | 
						DECLARE @itemid int
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						INSERT INTO @procs (ProcItemIDs) (select id from vefn_SplitInt(@procList, ','))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						DECLARE @i INT
 | 
				
			||||||
 | 
					    SET @i = (SELECT MIN(RowID) FROM @procs);
 | 
				
			||||||
 | 
						DECLARE @max INT;
 | 
				
			||||||
 | 
					    SET @max = (SELECT MAX(RowID) FROM @procs);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-- add all itemids relateted to requested Annotation cleaning.
 | 
				
			||||||
 | 
						while (@i <= @max)
 | 
				
			||||||
 | 
						BEGIN
 | 
				
			||||||
 | 
							SELECT @itemid = ProcItemIDs from @procs where RowID = @i
 | 
				
			||||||
 | 
							INSERT INTO @Annotationitems (AllItemIDs)
 | 
				
			||||||
 | 
							(SELECT cir.itemid FROM vefn_ChildItemsRange(@itemid,@itemid,null) cir JOIN Annotations an on an.itemid = cir.itemid where an.typeid = @typeid)
 | 
				
			||||||
 | 
							SET @i = @i + 1;
 | 
				
			||||||
 | 
						END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SELECT @i = MIN(RowID) FROM @procs;
 | 
				
			||||||
 | 
					    SELECT @max = MAX(RowID) FROM @procs;		
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-- Delete Annotations
 | 
				
			||||||
 | 
						DELETE FROM Ann 
 | 
				
			||||||
 | 
						FROM tblAnnotations Ann INNER JOIN @Annotationitems AI ON Ann.itemid = AI.AllItemIDs WHERE TypeID = @typeid	
 | 
				
			||||||
 | 
					GO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'getAnnotationDocvCount')
 | 
				
			||||||
 | 
					DROP PROCEDURE [dbo].[getAnnotationDocvCount]
 | 
				
			||||||
 | 
					GO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/****** Object:  StoredProcedure [dbo].[getAnnotationDocvCount]    Script Date: 7/11/2024 2:48:35 PM ******/
 | 
				
			||||||
 | 
					SET ANSI_NULLS ON
 | 
				
			||||||
 | 
					GO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SET QUOTED_IDENTIFIER ON
 | 
				
			||||||
 | 
					GO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/*****************************************************************************
 | 
				
			||||||
 | 
						   Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
 | 
				
			||||||
 | 
							   Copyright 2024 - Volian Enterprises, Inc. All rights reserved.
 | 
				
			||||||
 | 
						*****************************************************************************/
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						==========================================================================================================
 | 
				
			||||||
 | 
						 Author:		Paul Larsen
 | 
				
			||||||
 | 
						 Modified Date:	07/11/2024
 | 
				
			||||||
 | 
						 Description:	Retrieve the number of Annotations that will be deleted (DocVersions)
 | 
				
			||||||
 | 
						==========================================================================================================
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CREATE procedure [dbo].[getAnnotationDocvCount]
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
						@docvList varchar(MAX),
 | 
				
			||||||
 | 
						@typeid int
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					AS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DECLARE @docvs TABLE
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
						RowID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
 | 
				
			||||||
 | 
						itemid int
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--INSERT INTO @procs from STRING_SPLIT(@procList, ',')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INSERT INTO @docvs (itemid) (select id from vefn_SplitInt(@docvList, ','))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						DECLARE @cnt int = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						SELECT @cnt = count(cir.itemid) FROM [vefn_GetVersionItems](@docvList) cir JOIN Annotations an on an.itemid = cir.itemid where an.typeid = @typeid
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						SELECT @cnt AS 'COUNT'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/****** Object:  StoredProcedure [dbo].[getAnnotationProcCount]    Script Date: 7/11/2024 3:02:05 PM ******/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'getAnnotationProcCount')
 | 
				
			||||||
 | 
					DROP PROCEDURE [dbo].[getAnnotationProcCount]
 | 
				
			||||||
 | 
					GO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/****** Object:  StoredProcedure [dbo].[getAnnotationProcCount]    Script Date: 7/11/2024 3:02:05 PM ******/
 | 
				
			||||||
 | 
					SET ANSI_NULLS ON
 | 
				
			||||||
 | 
					GO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SET QUOTED_IDENTIFIER ON
 | 
				
			||||||
 | 
					GO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/*****************************************************************************
 | 
				
			||||||
 | 
						   Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
 | 
				
			||||||
 | 
							   Copyright 2024 - Volian Enterprises, Inc. All rights reserved.
 | 
				
			||||||
 | 
						*****************************************************************************/
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						==========================================================================================================
 | 
				
			||||||
 | 
						 Author:		Paul Larsen
 | 
				
			||||||
 | 
						 Modified Date:	07/11/2024
 | 
				
			||||||
 | 
						 Description:	Retrieve the number of Annotations that will be deleted (Procedures)
 | 
				
			||||||
 | 
						==========================================================================================================
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CREATE procedure [dbo].[getAnnotationProcCount]
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
						@procList varchar(MAX),
 | 
				
			||||||
 | 
						@typeid int
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					AS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DECLARE @procs TABLE
 | 
				
			||||||
 | 
					(
 | 
				
			||||||
 | 
						RowID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
 | 
				
			||||||
 | 
						itemid int
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INSERT INTO @procs (itemid) (select id from vefn_SplitInt(@procList, ','))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						DECLARE @cnt int = 0
 | 
				
			||||||
 | 
						DECLARE @cnt2 int
 | 
				
			||||||
 | 
						DECLARE @itemid int
 | 
				
			||||||
 | 
					    DECLARE @i INT
 | 
				
			||||||
 | 
					    SELECT @i = MIN(RowID) FROM @procs;
 | 
				
			||||||
 | 
						DECLARE @max INT;
 | 
				
			||||||
 | 
					    SELECT @max = MAX(RowID) FROM @procs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						while (@i <= @max)
 | 
				
			||||||
 | 
						BEGIN
 | 
				
			||||||
 | 
							SELECT @itemid = itemid from @procs where RowID = @i
 | 
				
			||||||
 | 
							SELECT @cnt = @cnt + (SELECT count(cir.itemid) FROM vefn_ChildItemsRange(@itemid,@itemid,null) cir JOIN Annotations an on an.itemid = cir.itemid where an.typeid = @typeid)
 | 
				
			||||||
 | 
							SET @i = @i + 1;
 | 
				
			||||||
 | 
						END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						SELECT @cnt AS 'count'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					==========================================================================================================
 | 
				
			||||||
 | 
					 End: C2024-005: PRL - SPs to support Admin tool to clean Annotations
 | 
				
			||||||
 | 
					==========================================================================================================
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-----------------------------------------------------------------------------
 | 
					-----------------------------------------------------------------------------
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
  ---------------------------------------------------------------------------
 | 
					  ---------------------------------------------------------------------------
 | 
				
			||||||
@@ -23289,8 +22940,8 @@ BEGIN TRY -- Try Block
 | 
				
			|||||||
	DECLARE @RevDate varchar(255)
 | 
						DECLARE @RevDate varchar(255)
 | 
				
			||||||
	DECLARE @RevDescription varchar(255)
 | 
						DECLARE @RevDescription varchar(255)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	set @RevDate = '07/16/2024 4:19 AM'
 | 
						set @RevDate = '07/16/2024 5:00 PM'
 | 
				
			||||||
	set @RevDescription = 'B2024-041: Bug fix for copy/replace functionality on procedures and steps'
 | 
						set @RevDescription = 'C2024-005: An Admin tool that can delete a group of annotations should be developed'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Select  cast(@RevDate as datetime) RevDate, @RevDescription  RevDescription
 | 
						Select  cast(@RevDate as datetime) RevDate, @RevDescription  RevDescription
 | 
				
			||||||
	PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
 | 
						PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -99,7 +99,10 @@
 | 
				
			|||||||
    <Prefer32Bit>false</Prefer32Bit>
 | 
					    <Prefer32Bit>false</Prefer32Bit>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <Reference Include="C1.Win.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=944ae1ea0e47ca04" />
 | 
				
			||||||
 | 
					    <Reference Include="C1.Win.C1Command.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=e808566f358766d8" />
 | 
				
			||||||
    <Reference Include="C1.Win.C1FlexGrid.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL" />
 | 
					    <Reference Include="C1.Win.C1FlexGrid.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL" />
 | 
				
			||||||
 | 
					    <Reference Include="C1.Win.C1Input.2, Version=2.0.20213.532, Culture=neutral, PublicKeyToken=7e7ff60f0c214f9a, processorArchitecture=MSIL" />
 | 
				
			||||||
    <Reference Include="Csla">
 | 
					    <Reference Include="Csla">
 | 
				
			||||||
      <HintPath>..\..\..\..\3rdPartyLibraries\CSLA\Csla.dll</HintPath>
 | 
					      <HintPath>..\..\..\..\3rdPartyLibraries\CSLA\Csla.dll</HintPath>
 | 
				
			||||||
    </Reference>
 | 
					    </Reference>
 | 
				
			||||||
@@ -220,6 +223,12 @@
 | 
				
			|||||||
    <Compile Include="dlgUCFDetail.Designer.cs">
 | 
					    <Compile Include="dlgUCFDetail.Designer.cs">
 | 
				
			||||||
      <DependentUpon>dlgUCFDetail.cs</DependentUpon>
 | 
					      <DependentUpon>dlgUCFDetail.cs</DependentUpon>
 | 
				
			||||||
    </Compile>
 | 
					    </Compile>
 | 
				
			||||||
 | 
					    <Compile Include="frmAnnotationsCleanup.cs">
 | 
				
			||||||
 | 
					      <SubType>Form</SubType>
 | 
				
			||||||
 | 
					    </Compile>
 | 
				
			||||||
 | 
					    <Compile Include="frmAnnotationsCleanup.Designer.cs">
 | 
				
			||||||
 | 
					      <DependentUpon>frmAnnotationsCleanup.cs</DependentUpon>
 | 
				
			||||||
 | 
					    </Compile>
 | 
				
			||||||
    <Compile Include="frmBatchRefresh.cs">
 | 
					    <Compile Include="frmBatchRefresh.cs">
 | 
				
			||||||
      <SubType>Form</SubType>
 | 
					      <SubType>Form</SubType>
 | 
				
			||||||
    </Compile>
 | 
					    </Compile>
 | 
				
			||||||
@@ -331,6 +340,9 @@
 | 
				
			|||||||
    <EmbeddedResource Include="dlgUCFDetail.resx">
 | 
					    <EmbeddedResource Include="dlgUCFDetail.resx">
 | 
				
			||||||
      <DependentUpon>dlgUCFDetail.cs</DependentUpon>
 | 
					      <DependentUpon>dlgUCFDetail.cs</DependentUpon>
 | 
				
			||||||
    </EmbeddedResource>
 | 
					    </EmbeddedResource>
 | 
				
			||||||
 | 
					    <EmbeddedResource Include="frmAnnotationsCleanup.resx">
 | 
				
			||||||
 | 
					      <DependentUpon>frmAnnotationsCleanup.cs</DependentUpon>
 | 
				
			||||||
 | 
					    </EmbeddedResource>
 | 
				
			||||||
    <EmbeddedResource Include="frmPDFStatusForm.resx">
 | 
					    <EmbeddedResource Include="frmPDFStatusForm.resx">
 | 
				
			||||||
      <DependentUpon>frmPDFStatusForm.cs</DependentUpon>
 | 
					      <DependentUpon>frmPDFStatusForm.cs</DependentUpon>
 | 
				
			||||||
      <SubType>Designer</SubType>
 | 
					      <SubType>Designer</SubType>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										132
									
								
								PROMS/VEPROMS User Interface/frmAnnotationsCleanup.Designer.cs
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										132
									
								
								PROMS/VEPROMS User Interface/frmAnnotationsCleanup.Designer.cs
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,132 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					using VEPROMS.CSLA.Library;
 | 
				
			||||||
 | 
					using Volian.Base.Library;
 | 
				
			||||||
 | 
					namespace VEPROMS
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						partial class frmAnnotationsCleanup
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							/// <summary>
 | 
				
			||||||
 | 
							/// Required designer variable.
 | 
				
			||||||
 | 
							/// </summary>
 | 
				
			||||||
 | 
							private System.ComponentModel.IContainer components = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/// <summary>
 | 
				
			||||||
 | 
							/// Clean up any resources being used.
 | 
				
			||||||
 | 
							/// </summary>
 | 
				
			||||||
 | 
							/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
 | 
				
			||||||
 | 
							protected override void Dispose(bool disposing)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (disposing && (components != null))
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									components.Dispose();
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								base.Dispose(disposing);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							#region Windows Form Designer generated code
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/// <summary>
 | 
				
			||||||
 | 
							/// Required method for Designer support - do not modify
 | 
				
			||||||
 | 
							/// the contents of this method with the code editor.
 | 
				
			||||||
 | 
							/// </summary>
 | 
				
			||||||
 | 
							private void InitializeComponent()
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								this.components = new System.ComponentModel.Container();
 | 
				
			||||||
 | 
								this.lbAnnotationTypes = new System.Windows.Forms.ListBox();
 | 
				
			||||||
 | 
								this.itemAnnotationsBindingSource = new System.Windows.Forms.BindingSource(this.components);
 | 
				
			||||||
 | 
								this.lblAnnotationsList = new System.Windows.Forms.Label();
 | 
				
			||||||
 | 
								this.btnClean = new System.Windows.Forms.Button();
 | 
				
			||||||
 | 
								this.lblCountNumber = new System.Windows.Forms.Label();
 | 
				
			||||||
 | 
								this.lblCount = new System.Windows.Forms.Label();
 | 
				
			||||||
 | 
								this.btnClose = new System.Windows.Forms.Button();
 | 
				
			||||||
 | 
								((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).BeginInit();
 | 
				
			||||||
 | 
								this.SuspendLayout();
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// lbAnnotationTypes
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.lbAnnotationTypes.DataSource = this.itemAnnotationsBindingSource;
 | 
				
			||||||
 | 
								this.lbAnnotationTypes.FormattingEnabled = true;
 | 
				
			||||||
 | 
								this.lbAnnotationTypes.Location = new System.Drawing.Point(25, 48);
 | 
				
			||||||
 | 
								this.lbAnnotationTypes.Name = "lbAnnotationTypes";
 | 
				
			||||||
 | 
								this.lbAnnotationTypes.Size = new System.Drawing.Size(295, 433);
 | 
				
			||||||
 | 
								this.lbAnnotationTypes.TabIndex = 0;
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// lblAnnotationsList
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.lblAnnotationsList.AutoSize = true;
 | 
				
			||||||
 | 
								this.lblAnnotationsList.Location = new System.Drawing.Point(26, 21);
 | 
				
			||||||
 | 
								this.lblAnnotationsList.Name = "lblAnnotationsList";
 | 
				
			||||||
 | 
								this.lblAnnotationsList.Size = new System.Drawing.Size(169, 13);
 | 
				
			||||||
 | 
								this.lblAnnotationsList.TabIndex = 1;
 | 
				
			||||||
 | 
								this.lblAnnotationsList.Text = "Select a Annotation Type to Clean";
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// btnClean
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.btnClean.Location = new System.Drawing.Point(365, 164);
 | 
				
			||||||
 | 
								this.btnClean.Name = "btnClean";
 | 
				
			||||||
 | 
								this.btnClean.Size = new System.Drawing.Size(131, 36);
 | 
				
			||||||
 | 
								this.btnClean.TabIndex = 2;
 | 
				
			||||||
 | 
								this.btnClean.Text = "Proceed?";
 | 
				
			||||||
 | 
								this.btnClean.UseVisualStyleBackColor = true;
 | 
				
			||||||
 | 
								this.btnClean.Click += new System.EventHandler(this.button1_Click);
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// lblCountNumber
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.lblCountNumber.AutoSize = true;
 | 
				
			||||||
 | 
								this.lblCountNumber.Location = new System.Drawing.Point(395, 100);
 | 
				
			||||||
 | 
								this.lblCountNumber.Name = "lblCountNumber";
 | 
				
			||||||
 | 
								this.lblCountNumber.Size = new System.Drawing.Size(69, 13);
 | 
				
			||||||
 | 
								this.lblCountNumber.TabIndex = 3;
 | 
				
			||||||
 | 
								this.lblCountNumber.Text = "Delete Count";
 | 
				
			||||||
 | 
								this.lblCountNumber.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// lblCount
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.lblCount.AutoSize = true;
 | 
				
			||||||
 | 
								this.lblCount.Location = new System.Drawing.Point(331, 70);
 | 
				
			||||||
 | 
								this.lblCount.Name = "lblCount";
 | 
				
			||||||
 | 
								this.lblCount.Size = new System.Drawing.Size(206, 13);
 | 
				
			||||||
 | 
								this.lblCount.TabIndex = 4;
 | 
				
			||||||
 | 
								this.lblCount.Text = "Number of Annotations that will be deleted";
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// btnClose
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.btnClose.Location = new System.Drawing.Point(397, 457);
 | 
				
			||||||
 | 
								this.btnClose.Name = "btnClose";
 | 
				
			||||||
 | 
								this.btnClose.Size = new System.Drawing.Size(75, 23);
 | 
				
			||||||
 | 
								this.btnClose.TabIndex = 5;
 | 
				
			||||||
 | 
								this.btnClose.Text = "Close";
 | 
				
			||||||
 | 
								this.btnClose.UseVisualStyleBackColor = true;
 | 
				
			||||||
 | 
								this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// frmAnnotationsCleanup
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
 | 
				
			||||||
 | 
								this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
 | 
				
			||||||
 | 
								this.ClientSize = new System.Drawing.Size(549, 535);
 | 
				
			||||||
 | 
								this.Controls.Add(this.btnClose);
 | 
				
			||||||
 | 
								this.Controls.Add(this.lblCount);
 | 
				
			||||||
 | 
								this.Controls.Add(this.lblCountNumber);
 | 
				
			||||||
 | 
								this.Controls.Add(this.btnClean);
 | 
				
			||||||
 | 
								this.Controls.Add(this.lblAnnotationsList);
 | 
				
			||||||
 | 
								this.Controls.Add(this.lbAnnotationTypes);
 | 
				
			||||||
 | 
								this.Name = "frmAnnotationsCleanup";
 | 
				
			||||||
 | 
								this.Text = "Clean Annotations";
 | 
				
			||||||
 | 
								((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).EndInit();
 | 
				
			||||||
 | 
								this.ResumeLayout(false);
 | 
				
			||||||
 | 
								this.PerformLayout();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							#endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							private System.Windows.Forms.ListBox lbAnnotationTypes;
 | 
				
			||||||
 | 
							private System.Windows.Forms.Label lblAnnotationsList;
 | 
				
			||||||
 | 
							private System.Windows.Forms.BindingSource itemAnnotationsBindingSource;
 | 
				
			||||||
 | 
							private System.Windows.Forms.Button btnClean;
 | 
				
			||||||
 | 
							private System.Windows.Forms.Label lblCountNumber;
 | 
				
			||||||
 | 
							private System.Windows.Forms.Label lblCount;
 | 
				
			||||||
 | 
							private System.Windows.Forms.Button btnClose;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										156
									
								
								PROMS/VEPROMS User Interface/frmAnnotationsCleanup.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										156
									
								
								PROMS/VEPROMS User Interface/frmAnnotationsCleanup.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,156 @@
 | 
				
			|||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.ComponentModel;
 | 
				
			||||||
 | 
					using System.Data;
 | 
				
			||||||
 | 
					using System.Drawing;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using System.Windows.Forms;
 | 
				
			||||||
 | 
					using VEPROMS.CSLA.Library;
 | 
				
			||||||
 | 
					using Volian.Base.Library;
 | 
				
			||||||
 | 
					//using Volian.Pipe.Library;
 | 
				
			||||||
 | 
					using System.Xml;
 | 
				
			||||||
 | 
					using System.Diagnostics;
 | 
				
			||||||
 | 
					using JR.Utils.GUI.Forms;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace VEPROMS
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						public partial class frmAnnotationsCleanup : Form
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							Label mylab = new Label();
 | 
				
			||||||
 | 
							string procList = "";
 | 
				
			||||||
 | 
							string docvList = "";
 | 
				
			||||||
 | 
							int AnnotationTyp;
 | 
				
			||||||
 | 
							List<ProcedureInfo> pil2 = new List<ProcedureInfo>();
 | 
				
			||||||
 | 
							List<DocVersionInfo> dvil2 = new List<DocVersionInfo>();
 | 
				
			||||||
 | 
							private frmBatchRefresh mainForm = null;
 | 
				
			||||||
 | 
							// frmAnnotationsCleanup constructor passes users procedure and docversion selections from frmBatchRefresh
 | 
				
			||||||
 | 
							public frmAnnotationsCleanup(Form callingForm, List<ProcedureInfo> pil, List<DocVersionInfo> dvil)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							{		// Set up link back to parent form.
 | 
				
			||||||
 | 
								mainForm = callingForm as frmBatchRefresh;
 | 
				
			||||||
 | 
								InitializeComponent();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								pil2 = pil;
 | 
				
			||||||
 | 
								dvil2 = dvil;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									// Get list of annotation types for plant.
 | 
				
			||||||
 | 
								myAnnotationTypeInfoList = AnnotationTypeInfoList.Get();
 | 
				
			||||||
 | 
								lbAnnotationTypes.DataSource = myLocalAnnotationTypeInfoList = new LocalAnnotationTypeInfoList(myAnnotationTypeInfoList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								Dictionary<string, string> AnnotationsList = new Dictionary<string, string>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									// Add name and type ID to form.
 | 
				
			||||||
 | 
								foreach (LocalAnnotationTypeInfo lati in myLocalAnnotationTypeInfoList)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									AnnotationsList.Add(lati.TypeID.ToString(), lati.Name);
 | 
				
			||||||
 | 
									//cbAnnotationTypes.Items.Add(new { Name = lati.Name, Value = lati.TypeID });
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								lbAnnotationTypes.DataSource = new BindingSource(AnnotationsList, null);
 | 
				
			||||||
 | 
								lbAnnotationTypes.DisplayMember = "Value";
 | 
				
			||||||
 | 
								lbAnnotationTypes.ValueMember = "Key";
 | 
				
			||||||
 | 
								lbAnnotationTypes.SelectedIndexChanged += lbAnnotationTypes_SelectedIndexChanged;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
								// create comma delimited string of procedures selected by user.
 | 
				
			||||||
 | 
							private string getAnnotationProcItems(List<ProcedureInfo> pil2)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								procList = "";
 | 
				
			||||||
 | 
								foreach (var p in pil2)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (p.IsProcedure)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										if (procList == "")
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											procList = procList + p.ItemID.ToString();
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										else
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											procList = procList + "," + p.ItemID.ToString();
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								return procList;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								// create comma delimited string of doc versions selected by user.
 | 
				
			||||||
 | 
							private string getAnnotationDocvItems(List<DocVersionInfo> dvil2)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								docvList = "";
 | 
				
			||||||
 | 
								foreach (var d in dvil2)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (d.IsDocVersion)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										if (docvList == "")
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											docvList = docvList + d.VersionID.ToString();
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										else
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											docvList = docvList + "," + d.VersionID.ToString();
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								return docvList;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							private AnnotationTypeInfoList myAnnotationTypeInfoList = null;
 | 
				
			||||||
 | 
							private LocalAnnotationTypeInfoList myLocalAnnotationTypeInfoList = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								// Process used to cleanup annotations "(Proceed?" button)
 | 
				
			||||||
 | 
							private void button1_Click(object sender, EventArgs e)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								foreach (var p in pil2)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (p.IsProcedure)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										TextBox frm2 = mainForm.GettxtProcess();
 | 
				
			||||||
 | 
										frm2.AppendText(p.DisplayNumber + ' ' + p.DisplayText);
 | 
				
			||||||
 | 
										AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
 | 
				
			||||||
 | 
										Annotation.DeleteAnnotationProcByType(AnnotationTyp, p.ItemID.ToString());
 | 
				
			||||||
 | 
										lblCountNumber.Text = "0";
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								foreach (var d in dvil2)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (d.IsDocVersion)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										TextBox frm2 = mainForm.GettxtProcess();
 | 
				
			||||||
 | 
										frm2.AppendText(d.ActiveParent.ToString());
 | 
				
			||||||
 | 
										AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
 | 
				
			||||||
 | 
										Annotation.DeleteAnnotationDocvByType(AnnotationTyp, d.VersionID.ToString());
 | 
				
			||||||
 | 
										lblCountNumber.Text = "0";
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
								// Retrieve number of annotations that will be deleted.
 | 
				
			||||||
 | 
							private void lbAnnotationTypes_SelectedIndexChanged(object sender, EventArgs e)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								lblCountNumber.Text = "";
 | 
				
			||||||
 | 
								int deletecountProc = 0;
 | 
				
			||||||
 | 
								int deletecountDocv = 0;
 | 
				
			||||||
 | 
								if (pil2.Count > 0)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
 | 
				
			||||||
 | 
									deletecountProc = Annotation.getAnnotationProcCnt(AnnotationTyp, getAnnotationProcItems(pil2));
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if (dvil2.Count > 0)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									AnnotationTyp = System.Convert.ToInt32(((KeyValuePair<string, string>)lbAnnotationTypes.SelectedItem).Key);
 | 
				
			||||||
 | 
									deletecountDocv = Annotation.getAnnotationCountDocv(AnnotationTyp, getAnnotationDocvItems(dvil2));
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								lblCountNumber.Text = (deletecountProc + deletecountDocv).ToString();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
								// Close form.
 | 
				
			||||||
 | 
							private void btnClose_Click(object sender, EventArgs e)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								this.Close();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										123
									
								
								PROMS/VEPROMS User Interface/frmAnnotationsCleanup.resx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										123
									
								
								PROMS/VEPROMS User Interface/frmAnnotationsCleanup.resx
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,123 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<root>
 | 
				
			||||||
 | 
					  <!-- 
 | 
				
			||||||
 | 
					    Microsoft ResX Schema 
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    Version 2.0
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    The primary goals of this format is to allow a simple XML format 
 | 
				
			||||||
 | 
					    that is mostly human readable. The generation and parsing of the 
 | 
				
			||||||
 | 
					    various data types are done through the TypeConverter classes 
 | 
				
			||||||
 | 
					    associated with the data types.
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    Example:
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    ... ado.net/XML headers & schema ...
 | 
				
			||||||
 | 
					    <resheader name="resmimetype">text/microsoft-resx</resheader>
 | 
				
			||||||
 | 
					    <resheader name="version">2.0</resheader>
 | 
				
			||||||
 | 
					    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
 | 
				
			||||||
 | 
					    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
 | 
				
			||||||
 | 
					    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
 | 
				
			||||||
 | 
					    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
 | 
				
			||||||
 | 
					    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
 | 
				
			||||||
 | 
					        <value>[base64 mime encoded serialized .NET Framework object]</value>
 | 
				
			||||||
 | 
					    </data>
 | 
				
			||||||
 | 
					    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
 | 
				
			||||||
 | 
					        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
 | 
				
			||||||
 | 
					        <comment>This is a comment</comment>
 | 
				
			||||||
 | 
					    </data>
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					    There are any number of "resheader" rows that contain simple 
 | 
				
			||||||
 | 
					    name/value pairs.
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    Each data row contains a name, and value. The row also contains a 
 | 
				
			||||||
 | 
					    type or mimetype. Type corresponds to a .NET class that support 
 | 
				
			||||||
 | 
					    text/value conversion through the TypeConverter architecture. 
 | 
				
			||||||
 | 
					    Classes that don't support this are serialized and stored with the 
 | 
				
			||||||
 | 
					    mimetype set.
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    The mimetype is used for serialized objects, and tells the 
 | 
				
			||||||
 | 
					    ResXResourceReader how to depersist the object. This is currently not 
 | 
				
			||||||
 | 
					    extensible. For a given mimetype the value must be set accordingly:
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    Note - application/x-microsoft.net.object.binary.base64 is the format 
 | 
				
			||||||
 | 
					    that the ResXResourceWriter will generate, however the reader can 
 | 
				
			||||||
 | 
					    read any of the formats listed below.
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    mimetype: application/x-microsoft.net.object.binary.base64
 | 
				
			||||||
 | 
					    value   : The object must be serialized with 
 | 
				
			||||||
 | 
					            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
 | 
				
			||||||
 | 
					            : and then encoded with base64 encoding.
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    mimetype: application/x-microsoft.net.object.soap.base64
 | 
				
			||||||
 | 
					    value   : The object must be serialized with 
 | 
				
			||||||
 | 
					            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
 | 
				
			||||||
 | 
					            : and then encoded with base64 encoding.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    mimetype: application/x-microsoft.net.object.bytearray.base64
 | 
				
			||||||
 | 
					    value   : The object must be serialized into a byte array 
 | 
				
			||||||
 | 
					            : using a System.ComponentModel.TypeConverter
 | 
				
			||||||
 | 
					            : and then encoded with base64 encoding.
 | 
				
			||||||
 | 
					    -->
 | 
				
			||||||
 | 
					  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
 | 
				
			||||||
 | 
					    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
 | 
				
			||||||
 | 
					    <xsd:element name="root" msdata:IsDataSet="true">
 | 
				
			||||||
 | 
					      <xsd:complexType>
 | 
				
			||||||
 | 
					        <xsd:choice maxOccurs="unbounded">
 | 
				
			||||||
 | 
					          <xsd:element name="metadata">
 | 
				
			||||||
 | 
					            <xsd:complexType>
 | 
				
			||||||
 | 
					              <xsd:sequence>
 | 
				
			||||||
 | 
					                <xsd:element name="value" type="xsd:string" minOccurs="0" />
 | 
				
			||||||
 | 
					              </xsd:sequence>
 | 
				
			||||||
 | 
					              <xsd:attribute name="name" use="required" type="xsd:string" />
 | 
				
			||||||
 | 
					              <xsd:attribute name="type" type="xsd:string" />
 | 
				
			||||||
 | 
					              <xsd:attribute name="mimetype" type="xsd:string" />
 | 
				
			||||||
 | 
					              <xsd:attribute ref="xml:space" />
 | 
				
			||||||
 | 
					            </xsd:complexType>
 | 
				
			||||||
 | 
					          </xsd:element>
 | 
				
			||||||
 | 
					          <xsd:element name="assembly">
 | 
				
			||||||
 | 
					            <xsd:complexType>
 | 
				
			||||||
 | 
					              <xsd:attribute name="alias" type="xsd:string" />
 | 
				
			||||||
 | 
					              <xsd:attribute name="name" type="xsd:string" />
 | 
				
			||||||
 | 
					            </xsd:complexType>
 | 
				
			||||||
 | 
					          </xsd:element>
 | 
				
			||||||
 | 
					          <xsd:element name="data">
 | 
				
			||||||
 | 
					            <xsd:complexType>
 | 
				
			||||||
 | 
					              <xsd:sequence>
 | 
				
			||||||
 | 
					                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
 | 
				
			||||||
 | 
					                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
 | 
				
			||||||
 | 
					              </xsd:sequence>
 | 
				
			||||||
 | 
					              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
 | 
				
			||||||
 | 
					              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
 | 
				
			||||||
 | 
					              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
 | 
				
			||||||
 | 
					              <xsd:attribute ref="xml:space" />
 | 
				
			||||||
 | 
					            </xsd:complexType>
 | 
				
			||||||
 | 
					          </xsd:element>
 | 
				
			||||||
 | 
					          <xsd:element name="resheader">
 | 
				
			||||||
 | 
					            <xsd:complexType>
 | 
				
			||||||
 | 
					              <xsd:sequence>
 | 
				
			||||||
 | 
					                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
 | 
				
			||||||
 | 
					              </xsd:sequence>
 | 
				
			||||||
 | 
					              <xsd:attribute name="name" type="xsd:string" use="required" />
 | 
				
			||||||
 | 
					            </xsd:complexType>
 | 
				
			||||||
 | 
					          </xsd:element>
 | 
				
			||||||
 | 
					        </xsd:choice>
 | 
				
			||||||
 | 
					      </xsd:complexType>
 | 
				
			||||||
 | 
					    </xsd:element>
 | 
				
			||||||
 | 
					  </xsd:schema>
 | 
				
			||||||
 | 
					  <resheader name="resmimetype">
 | 
				
			||||||
 | 
					    <value>text/microsoft-resx</value>
 | 
				
			||||||
 | 
					  </resheader>
 | 
				
			||||||
 | 
					  <resheader name="version">
 | 
				
			||||||
 | 
					    <value>2.0</value>
 | 
				
			||||||
 | 
					  </resheader>
 | 
				
			||||||
 | 
					  <resheader name="reader">
 | 
				
			||||||
 | 
					    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
 | 
				
			||||||
 | 
					  </resheader>
 | 
				
			||||||
 | 
					  <resheader name="writer">
 | 
				
			||||||
 | 
					    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
 | 
				
			||||||
 | 
					  </resheader>
 | 
				
			||||||
 | 
					  <metadata name="itemAnnotationsBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
 | 
				
			||||||
 | 
					    <value>17, 17</value>
 | 
				
			||||||
 | 
					  </metadata>
 | 
				
			||||||
 | 
					</root>
 | 
				
			||||||
							
								
								
									
										635
									
								
								PROMS/VEPROMS User Interface/frmBatchRefresh.Designer.cs
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										635
									
								
								PROMS/VEPROMS User Interface/frmBatchRefresh.Designer.cs
									
									
									
										generated
									
									
									
								
							@@ -52,6 +52,24 @@
 | 
				
			|||||||
			this.expandableSplitter1 = new DevComponents.DotNetBar.ExpandableSplitter();
 | 
								this.expandableSplitter1 = new DevComponents.DotNetBar.ExpandableSplitter();
 | 
				
			||||||
			this.panelEx1 = new DevComponents.DotNetBar.PanelEx();
 | 
								this.panelEx1 = new DevComponents.DotNetBar.PanelEx();
 | 
				
			||||||
			this.sideNav1 = new DevComponents.DotNetBar.Controls.SideNav();
 | 
								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.sideNavPanel1 = new DevComponents.DotNetBar.Controls.SideNavPanel();
 | 
				
			||||||
 | 
								this.warningBox3 = new DevComponents.DotNetBar.Controls.WarningBox();
 | 
				
			||||||
 | 
								this.labelX7 = new DevComponents.DotNetBar.LabelX();
 | 
				
			||||||
 | 
								this.line1 = new DevComponents.DotNetBar.Controls.Line();
 | 
				
			||||||
 | 
								this.swCkObsoleteROData = new DevComponents.DotNetBar.Controls.SwitchButton();
 | 
				
			||||||
 | 
								this.swHiddenDataLocs = new DevComponents.DotNetBar.Controls.SwitchButton();
 | 
				
			||||||
 | 
								this.labelX3 = new DevComponents.DotNetBar.LabelX();
 | 
				
			||||||
 | 
								this.labelX2 = new DevComponents.DotNetBar.LabelX();
 | 
				
			||||||
 | 
								this.swCkOrphanDataRecs = new DevComponents.DotNetBar.Controls.SwitchButton();
 | 
				
			||||||
 | 
								this.labelX1 = new DevComponents.DotNetBar.LabelX();
 | 
				
			||||||
 | 
								this.btnRunCheck = new DevComponents.DotNetBar.ButtonX();
 | 
				
			||||||
			this.sideNavPanel2 = new DevComponents.DotNetBar.Controls.SideNavPanel();
 | 
								this.sideNavPanel2 = new DevComponents.DotNetBar.Controls.SideNavPanel();
 | 
				
			||||||
			this.swRefreshTblsForSrch = new DevComponents.DotNetBar.Controls.SwitchButton();
 | 
								this.swRefreshTblsForSrch = new DevComponents.DotNetBar.Controls.SwitchButton();
 | 
				
			||||||
			this.lblRefreshTblForSrch = new DevComponents.DotNetBar.LabelX();
 | 
								this.lblRefreshTblForSrch = new DevComponents.DotNetBar.LabelX();
 | 
				
			||||||
@@ -68,17 +86,6 @@
 | 
				
			|||||||
			this.labelX8 = new DevComponents.DotNetBar.LabelX();
 | 
								this.labelX8 = new DevComponents.DotNetBar.LabelX();
 | 
				
			||||||
			this.line2 = new DevComponents.DotNetBar.Controls.Line();
 | 
								this.line2 = new DevComponents.DotNetBar.Controls.Line();
 | 
				
			||||||
			this.btnRunRepair = new DevComponents.DotNetBar.ButtonX();
 | 
								this.btnRunRepair = new DevComponents.DotNetBar.ButtonX();
 | 
				
			||||||
			this.sideNavPanel1 = new DevComponents.DotNetBar.Controls.SideNavPanel();
 | 
					 | 
				
			||||||
			this.warningBox3 = new DevComponents.DotNetBar.Controls.WarningBox();
 | 
					 | 
				
			||||||
			this.labelX7 = new DevComponents.DotNetBar.LabelX();
 | 
					 | 
				
			||||||
			this.line1 = new DevComponents.DotNetBar.Controls.Line();
 | 
					 | 
				
			||||||
			this.swCkObsoleteROData = new DevComponents.DotNetBar.Controls.SwitchButton();
 | 
					 | 
				
			||||||
			this.swHiddenDataLocs = new DevComponents.DotNetBar.Controls.SwitchButton();
 | 
					 | 
				
			||||||
			this.labelX3 = new DevComponents.DotNetBar.LabelX();
 | 
					 | 
				
			||||||
			this.labelX2 = new DevComponents.DotNetBar.LabelX();
 | 
					 | 
				
			||||||
			this.swCkOrphanDataRecs = new DevComponents.DotNetBar.Controls.SwitchButton();
 | 
					 | 
				
			||||||
			this.labelX1 = new DevComponents.DotNetBar.LabelX();
 | 
					 | 
				
			||||||
			this.btnRunCheck = new DevComponents.DotNetBar.ButtonX();
 | 
					 | 
				
			||||||
			this.sideNavPanel3 = new DevComponents.DotNetBar.Controls.SideNavPanel();
 | 
								this.sideNavPanel3 = new DevComponents.DotNetBar.Controls.SideNavPanel();
 | 
				
			||||||
			this.swCheckROLinks = new DevComponents.DotNetBar.Controls.SwitchButton();
 | 
								this.swCheckROLinks = new DevComponents.DotNetBar.Controls.SwitchButton();
 | 
				
			||||||
			this.labelX12 = new DevComponents.DotNetBar.LabelX();
 | 
								this.labelX12 = new DevComponents.DotNetBar.LabelX();
 | 
				
			||||||
@@ -90,14 +97,14 @@
 | 
				
			|||||||
			this.labelX6 = new DevComponents.DotNetBar.LabelX();
 | 
								this.labelX6 = new DevComponents.DotNetBar.LabelX();
 | 
				
			||||||
			this.warningBox1 = new DevComponents.DotNetBar.Controls.WarningBox();
 | 
								this.warningBox1 = new DevComponents.DotNetBar.Controls.WarningBox();
 | 
				
			||||||
			this.btnFixLinks = new DevComponents.DotNetBar.ButtonX();
 | 
								this.btnFixLinks = new DevComponents.DotNetBar.ButtonX();
 | 
				
			||||||
			this.sideNavPanel4 = new DevComponents.DotNetBar.Controls.SideNavPanel();
 | 
					 | 
				
			||||||
			this.btn_ShowUsers = new DevComponents.DotNetBar.ButtonX();
 | 
					 | 
				
			||||||
			this.sideNavItem1 = new DevComponents.DotNetBar.Controls.SideNavItem();
 | 
								this.sideNavItem1 = new DevComponents.DotNetBar.Controls.SideNavItem();
 | 
				
			||||||
			this.separator1 = new DevComponents.DotNetBar.Separator();
 | 
								this.separator1 = new DevComponents.DotNetBar.Separator();
 | 
				
			||||||
			this.sideNavItmCheck = new DevComponents.DotNetBar.Controls.SideNavItem();
 | 
								this.sideNavItmCheck = new DevComponents.DotNetBar.Controls.SideNavItem();
 | 
				
			||||||
			this.sideNavItmRepair = new DevComponents.DotNetBar.Controls.SideNavItem();
 | 
								this.sideNavItmRepair = new DevComponents.DotNetBar.Controls.SideNavItem();
 | 
				
			||||||
			this.sideNavItmLinks = new DevComponents.DotNetBar.Controls.SideNavItem();
 | 
								this.sideNavItmLinks = new DevComponents.DotNetBar.Controls.SideNavItem();
 | 
				
			||||||
			this.sideNavItmUsers = new DevComponents.DotNetBar.Controls.SideNavItem();
 | 
								this.sideNavItmUsers = new DevComponents.DotNetBar.Controls.SideNavItem();
 | 
				
			||||||
 | 
								this.buttonItem1 = new DevComponents.DotNetBar.ButtonItem();
 | 
				
			||||||
 | 
								this.sideNavItmDelete = new DevComponents.DotNetBar.Controls.SideNavItem();
 | 
				
			||||||
			this.sideNavItmExit = new DevComponents.DotNetBar.Controls.SideNavItem();
 | 
								this.sideNavItmExit = new DevComponents.DotNetBar.Controls.SideNavItem();
 | 
				
			||||||
			this.panelEx4 = new DevComponents.DotNetBar.PanelEx();
 | 
								this.panelEx4 = new DevComponents.DotNetBar.PanelEx();
 | 
				
			||||||
			this.progressSteps1 = new DevComponents.DotNetBar.ProgressSteps();
 | 
								this.progressSteps1 = new DevComponents.DotNetBar.ProgressSteps();
 | 
				
			||||||
@@ -118,10 +125,10 @@
 | 
				
			|||||||
			this.pnlLater.SuspendLayout();
 | 
								this.pnlLater.SuspendLayout();
 | 
				
			||||||
			this.panelEx1.SuspendLayout();
 | 
								this.panelEx1.SuspendLayout();
 | 
				
			||||||
			this.sideNav1.SuspendLayout();
 | 
								this.sideNav1.SuspendLayout();
 | 
				
			||||||
			this.sideNavPanel2.SuspendLayout();
 | 
					 | 
				
			||||||
			this.sideNavPanel1.SuspendLayout();
 | 
					 | 
				
			||||||
			this.sideNavPanel3.SuspendLayout();
 | 
					 | 
				
			||||||
			this.sideNavPanel4.SuspendLayout();
 | 
								this.sideNavPanel4.SuspendLayout();
 | 
				
			||||||
 | 
								this.sideNavPanel1.SuspendLayout();
 | 
				
			||||||
 | 
								this.sideNavPanel2.SuspendLayout();
 | 
				
			||||||
 | 
								this.sideNavPanel3.SuspendLayout();
 | 
				
			||||||
			this.panelEx4.SuspendLayout();
 | 
								this.panelEx4.SuspendLayout();
 | 
				
			||||||
			this.SuspendLayout();
 | 
								this.SuspendLayout();
 | 
				
			||||||
			// 
 | 
								// 
 | 
				
			||||||
@@ -133,7 +140,7 @@
 | 
				
			|||||||
			this.myTV.CheckBoxes = true;
 | 
								this.myTV.CheckBoxes = true;
 | 
				
			||||||
			this.myTV.Location = new System.Drawing.Point(0, 230);
 | 
								this.myTV.Location = new System.Drawing.Point(0, 230);
 | 
				
			||||||
			this.myTV.Name = "myTV";
 | 
								this.myTV.Name = "myTV";
 | 
				
			||||||
			this.myTV.Size = new System.Drawing.Size(300, 264);
 | 
								this.myTV.Size = new System.Drawing.Size(183, 226);
 | 
				
			||||||
			this.myTV.TabIndex = 4;
 | 
								this.myTV.TabIndex = 4;
 | 
				
			||||||
			this.myTV.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.myTV_AfterCheck);
 | 
								this.myTV.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.myTV_AfterCheck);
 | 
				
			||||||
			// 
 | 
								// 
 | 
				
			||||||
@@ -457,10 +464,10 @@
 | 
				
			|||||||
			// sideNav1
 | 
								// sideNav1
 | 
				
			||||||
			// 
 | 
								// 
 | 
				
			||||||
			this.sideNav1.BackColor = System.Drawing.SystemColors.Control;
 | 
								this.sideNav1.BackColor = System.Drawing.SystemColors.Control;
 | 
				
			||||||
			this.sideNav1.Controls.Add(this.sideNavPanel1);
 | 
					 | 
				
			||||||
			this.sideNav1.Controls.Add(this.sideNavPanel3);
 | 
					 | 
				
			||||||
			this.sideNav1.Controls.Add(this.sideNavPanel2);
 | 
					 | 
				
			||||||
			this.sideNav1.Controls.Add(this.sideNavPanel4);
 | 
								this.sideNav1.Controls.Add(this.sideNavPanel4);
 | 
				
			||||||
 | 
								this.sideNav1.Controls.Add(this.sideNavPanel1);
 | 
				
			||||||
 | 
								this.sideNav1.Controls.Add(this.sideNavPanel2);
 | 
				
			||||||
 | 
								this.sideNav1.Controls.Add(this.sideNavPanel3);
 | 
				
			||||||
			this.sideNav1.Dock = System.Windows.Forms.DockStyle.Fill;
 | 
								this.sideNav1.Dock = System.Windows.Forms.DockStyle.Fill;
 | 
				
			||||||
			this.sideNav1.EnableClose = false;
 | 
								this.sideNav1.EnableClose = false;
 | 
				
			||||||
			this.sideNav1.EnableMaximize = false;
 | 
								this.sideNav1.EnableMaximize = false;
 | 
				
			||||||
@@ -471,6 +478,7 @@
 | 
				
			|||||||
            this.sideNavItmRepair,
 | 
					            this.sideNavItmRepair,
 | 
				
			||||||
            this.sideNavItmLinks,
 | 
					            this.sideNavItmLinks,
 | 
				
			||||||
            this.sideNavItmUsers,
 | 
					            this.sideNavItmUsers,
 | 
				
			||||||
 | 
					            this.sideNavItmDelete,
 | 
				
			||||||
            this.sideNavItmExit});
 | 
					            this.sideNavItmExit});
 | 
				
			||||||
			this.sideNav1.Location = new System.Drawing.Point(0, 0);
 | 
								this.sideNav1.Location = new System.Drawing.Point(0, 0);
 | 
				
			||||||
			this.sideNav1.Name = "sideNav1";
 | 
								this.sideNav1.Name = "sideNav1";
 | 
				
			||||||
@@ -479,6 +487,302 @@
 | 
				
			|||||||
			this.sideNav1.TabIndex = 3;
 | 
								this.sideNav1.TabIndex = 3;
 | 
				
			||||||
			this.sideNav1.Text = "sideNav1";
 | 
								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(89, 31);
 | 
				
			||||||
 | 
								this.sideNavPanel4.Name = "sideNavPanel4";
 | 
				
			||||||
 | 
								this.sideNavPanel4.Size = new System.Drawing.Size(291, 494);
 | 
				
			||||||
 | 
								this.sideNavPanel4.TabIndex = 27;
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 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("Check RO Links", "", resources.GetString("swDeleteFolder.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 150)));
 | 
				
			||||||
 | 
								this.swDeleteFolder.SwitchClickTogglesValue = true;
 | 
				
			||||||
 | 
								this.swDeleteFolder.TabIndex = 39;
 | 
				
			||||||
 | 
								this.swDeleteFolder.Visible = false;
 | 
				
			||||||
 | 
								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("Check RO Links", "", resources.GetString("labelX13.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(350, 175)));
 | 
				
			||||||
 | 
								this.labelX13.TabIndex = 38;
 | 
				
			||||||
 | 
								this.labelX13.Text = "Delete Folders";
 | 
				
			||||||
 | 
								this.labelX13.Visible = false;
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 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("Refresh Transitions", "", resources.GetString("swDeleteAnnotations.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(265, 175)));
 | 
				
			||||||
 | 
								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("Refresh Transitions", "", resources.GetString("labelX14.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(256, 175)));
 | 
				
			||||||
 | 
								this.labelX14.TabIndex = 36;
 | 
				
			||||||
 | 
								this.labelX14.Text = "Delete Annotations";
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// myTVdel
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.myTVdel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
 | 
				
			||||||
 | 
					            | System.Windows.Forms.AnchorStyles.Left) 
 | 
				
			||||||
 | 
					            | System.Windows.Forms.AnchorStyles.Right)));
 | 
				
			||||||
 | 
								this.myTVdel.CheckBoxes = true;
 | 
				
			||||||
 | 
								this.myTVdel.Location = new System.Drawing.Point(14, 145);
 | 
				
			||||||
 | 
								this.myTVdel.Name = "myTVdel";
 | 
				
			||||||
 | 
								this.myTVdel.Size = new System.Drawing.Size(267, 331);
 | 
				
			||||||
 | 
								this.myTVdel.TabIndex = 34;
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// btnDeleteItems
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.btnDeleteItems.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
 | 
				
			||||||
 | 
								this.btnDeleteItems.Checked = true;
 | 
				
			||||||
 | 
								this.btnDeleteItems.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
 | 
				
			||||||
 | 
								this.btnDeleteItems.Location = new System.Drawing.Point(3, 98);
 | 
				
			||||||
 | 
								this.btnDeleteItems.Name = "btnDeleteItems";
 | 
				
			||||||
 | 
								this.btnDeleteItems.Size = new System.Drawing.Size(280, 23);
 | 
				
			||||||
 | 
								this.btnDeleteItems.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
 | 
				
			||||||
 | 
								this.superTooltip1.SetSuperTooltip(this.btnDeleteItems, 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.btnDeleteItems.TabIndex = 35;
 | 
				
			||||||
 | 
								this.btnDeleteItems.Text = "Process Deletions";
 | 
				
			||||||
 | 
								this.btnDeleteItems.Click += new System.EventHandler(this.btnDeleteItems_Click);
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// sideNavPanel1
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.sideNavPanel1.Controls.Add(this.warningBox3);
 | 
				
			||||||
 | 
								this.sideNavPanel1.Controls.Add(this.labelX7);
 | 
				
			||||||
 | 
								this.sideNavPanel1.Controls.Add(this.line1);
 | 
				
			||||||
 | 
								this.sideNavPanel1.Controls.Add(this.swCkObsoleteROData);
 | 
				
			||||||
 | 
								this.sideNavPanel1.Controls.Add(this.swHiddenDataLocs);
 | 
				
			||||||
 | 
								this.sideNavPanel1.Controls.Add(this.labelX3);
 | 
				
			||||||
 | 
								this.sideNavPanel1.Controls.Add(this.labelX2);
 | 
				
			||||||
 | 
								this.sideNavPanel1.Controls.Add(this.swCkOrphanDataRecs);
 | 
				
			||||||
 | 
								this.sideNavPanel1.Controls.Add(this.labelX1);
 | 
				
			||||||
 | 
								this.sideNavPanel1.Controls.Add(this.btnRunCheck);
 | 
				
			||||||
 | 
								this.sideNavPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
 | 
				
			||||||
 | 
								this.sideNavPanel1.Location = new System.Drawing.Point(89, 31);
 | 
				
			||||||
 | 
								this.sideNavPanel1.Name = "sideNavPanel1";
 | 
				
			||||||
 | 
								this.sideNavPanel1.Size = new System.Drawing.Size(291, 494);
 | 
				
			||||||
 | 
								this.sideNavPanel1.TabIndex = 2;
 | 
				
			||||||
 | 
								this.sideNavPanel1.Visible = false;
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 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(17, 207);
 | 
				
			||||||
 | 
								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 = 29;
 | 
				
			||||||
 | 
								this.warningBox3.Text = "<b>NOTE</b> These tools can take a long time to run";
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// labelX7
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.labelX7.BackColor = System.Drawing.Color.Transparent;
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.labelX7.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
				
			||||||
 | 
								this.labelX7.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 | 
				
			||||||
 | 
								this.labelX7.Location = new System.Drawing.Point(5, 3);
 | 
				
			||||||
 | 
								this.labelX7.Name = "labelX7";
 | 
				
			||||||
 | 
								this.labelX7.Size = new System.Drawing.Size(251, 22);
 | 
				
			||||||
 | 
								this.labelX7.TabIndex = 19;
 | 
				
			||||||
 | 
								this.labelX7.Text = "Check for these Data Issues:";
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// line1
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.line1.BackColor = System.Drawing.Color.Transparent;
 | 
				
			||||||
 | 
								this.line1.Location = new System.Drawing.Point(8, 179);
 | 
				
			||||||
 | 
								this.line1.Name = "line1";
 | 
				
			||||||
 | 
								this.line1.Size = new System.Drawing.Size(285, 12);
 | 
				
			||||||
 | 
								this.line1.TabIndex = 18;
 | 
				
			||||||
 | 
								this.line1.Text = "line1";
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// swCkObsoleteROData
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.swCkObsoleteROData.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
				
			||||||
 | 
								this.swCkObsoleteROData.Location = new System.Drawing.Point(10, 99);
 | 
				
			||||||
 | 
								this.swCkObsoleteROData.Name = "swCkObsoleteROData";
 | 
				
			||||||
 | 
								this.swCkObsoleteROData.Size = new System.Drawing.Size(91, 22);
 | 
				
			||||||
 | 
								this.swCkObsoleteROData.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
 | 
				
			||||||
 | 
								this.superTooltip1.SetSuperTooltip(this.swCkObsoleteROData, new DevComponents.DotNetBar.SuperTooltipInfo("Obsolete RO Data", "", resources.GetString("swCkObsoleteROData.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 135)));
 | 
				
			||||||
 | 
								this.swCkObsoleteROData.SwitchClickTogglesValue = true;
 | 
				
			||||||
 | 
								this.swCkObsoleteROData.TabIndex = 14;
 | 
				
			||||||
 | 
								this.swCkObsoleteROData.Value = true;
 | 
				
			||||||
 | 
								this.swCkObsoleteROData.ValueObject = "Y";
 | 
				
			||||||
 | 
								this.swCkObsoleteROData.ValueChanged += new System.EventHandler(this.swCk_ValueChanged);
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// swHiddenDataLocs
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.swHiddenDataLocs.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
				
			||||||
 | 
								this.swHiddenDataLocs.Location = new System.Drawing.Point(10, 71);
 | 
				
			||||||
 | 
								this.swHiddenDataLocs.Name = "swHiddenDataLocs";
 | 
				
			||||||
 | 
								this.swHiddenDataLocs.Size = new System.Drawing.Size(91, 22);
 | 
				
			||||||
 | 
								this.swHiddenDataLocs.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
 | 
				
			||||||
 | 
								this.superTooltip1.SetSuperTooltip(this.swHiddenDataLocs, new DevComponents.DotNetBar.SuperTooltipInfo("Hidden Data Locations", "", resources.GetString("swHiddenDataLocs.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
 | 
				
			||||||
 | 
								this.swHiddenDataLocs.SwitchClickTogglesValue = true;
 | 
				
			||||||
 | 
								this.swHiddenDataLocs.TabIndex = 15;
 | 
				
			||||||
 | 
								this.swHiddenDataLocs.Value = true;
 | 
				
			||||||
 | 
								this.swHiddenDataLocs.ValueObject = "Y";
 | 
				
			||||||
 | 
								this.swHiddenDataLocs.ValueChanged += new System.EventHandler(this.swCk_ValueChanged);
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// labelX3
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.labelX3.BackColor = System.Drawing.Color.Transparent;
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.labelX3.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
				
			||||||
 | 
								this.labelX3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 | 
				
			||||||
 | 
								this.labelX3.Location = new System.Drawing.Point(107, 99);
 | 
				
			||||||
 | 
								this.labelX3.Name = "labelX3";
 | 
				
			||||||
 | 
								this.labelX3.Size = new System.Drawing.Size(154, 22);
 | 
				
			||||||
 | 
								this.superTooltip1.SetSuperTooltip(this.labelX3, new DevComponents.DotNetBar.SuperTooltipInfo("Obsolete RO Data", "", resources.GetString("labelX3.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 135)));
 | 
				
			||||||
 | 
								this.labelX3.TabIndex = 11;
 | 
				
			||||||
 | 
								this.labelX3.Text = "Obsolete RO Data";
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// labelX2
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.labelX2.BackColor = System.Drawing.Color.Transparent;
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.labelX2.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
				
			||||||
 | 
								this.labelX2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 | 
				
			||||||
 | 
								this.labelX2.Location = new System.Drawing.Point(107, 71);
 | 
				
			||||||
 | 
								this.labelX2.Name = "labelX2";
 | 
				
			||||||
 | 
								this.labelX2.Size = new System.Drawing.Size(140, 22);
 | 
				
			||||||
 | 
								this.superTooltip1.SetSuperTooltip(this.labelX2, new DevComponents.DotNetBar.SuperTooltipInfo("Hidden Data Locations", "", resources.GetString("labelX2.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
 | 
				
			||||||
 | 
								this.labelX2.TabIndex = 12;
 | 
				
			||||||
 | 
								this.labelX2.Text = "Hidden Data Locations";
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// swCkOrphanDataRecs
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.swCkOrphanDataRecs.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
				
			||||||
 | 
								this.swCkOrphanDataRecs.Location = new System.Drawing.Point(10, 43);
 | 
				
			||||||
 | 
								this.swCkOrphanDataRecs.Name = "swCkOrphanDataRecs";
 | 
				
			||||||
 | 
								this.swCkOrphanDataRecs.Size = new System.Drawing.Size(91, 22);
 | 
				
			||||||
 | 
								this.swCkOrphanDataRecs.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
 | 
				
			||||||
 | 
								this.superTooltip1.SetSuperTooltip(this.swCkOrphanDataRecs, new DevComponents.DotNetBar.SuperTooltipInfo("Orphan Data Records", "", resources.GetString("swCkOrphanDataRecs.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(275, 193)));
 | 
				
			||||||
 | 
								this.swCkOrphanDataRecs.SwitchClickTogglesValue = true;
 | 
				
			||||||
 | 
								this.swCkOrphanDataRecs.TabIndex = 9;
 | 
				
			||||||
 | 
								this.swCkOrphanDataRecs.Value = true;
 | 
				
			||||||
 | 
								this.swCkOrphanDataRecs.ValueObject = "Y";
 | 
				
			||||||
 | 
								this.swCkOrphanDataRecs.ValueChanged += new System.EventHandler(this.swCk_ValueChanged);
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// labelX1
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.labelX1.BackColor = System.Drawing.Color.Transparent;
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.labelX1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
				
			||||||
 | 
								this.labelX1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 | 
				
			||||||
 | 
								this.labelX1.Location = new System.Drawing.Point(107, 43);
 | 
				
			||||||
 | 
								this.labelX1.Name = "labelX1";
 | 
				
			||||||
 | 
								this.labelX1.Size = new System.Drawing.Size(172, 22);
 | 
				
			||||||
 | 
								this.superTooltip1.SetSuperTooltip(this.labelX1, new DevComponents.DotNetBar.SuperTooltipInfo("Orphan Data Records", "", resources.GetString("labelX1.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(275, 190)));
 | 
				
			||||||
 | 
								this.labelX1.TabIndex = 8;
 | 
				
			||||||
 | 
								this.labelX1.Text = "Orphan Data Records";
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// btnRunCheck
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.btnRunCheck.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
 | 
				
			||||||
 | 
								this.btnRunCheck.Checked = true;
 | 
				
			||||||
 | 
								this.btnRunCheck.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
 | 
				
			||||||
 | 
								this.btnRunCheck.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 | 
				
			||||||
 | 
								this.btnRunCheck.Location = new System.Drawing.Point(5, 150);
 | 
				
			||||||
 | 
								this.btnRunCheck.Name = "btnRunCheck";
 | 
				
			||||||
 | 
								this.btnRunCheck.Size = new System.Drawing.Size(286, 23);
 | 
				
			||||||
 | 
								this.btnRunCheck.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
 | 
				
			||||||
 | 
								this.superTooltip1.SetSuperTooltip(this.btnRunCheck, new DevComponents.DotNetBar.SuperTooltipInfo("Run Check", "", "This will run the database check tools selected.\r\n\r\nClick on the on/off switches " +
 | 
				
			||||||
 | 
					            "to turn on/off each tool.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(200, 100)));
 | 
				
			||||||
 | 
								this.btnRunCheck.TabIndex = 7;
 | 
				
			||||||
 | 
								this.btnRunCheck.Text = "Run Check";
 | 
				
			||||||
 | 
								this.btnRunCheck.Click += new System.EventHandler(this.btnRunCheck_Click);
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// sideNavPanel2
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.sideNavPanel2.Controls.Add(this.swRefreshTblsForSrch);
 | 
				
			||||||
 | 
								this.sideNavPanel2.Controls.Add(this.lblRefreshTblForSrch);
 | 
				
			||||||
 | 
								this.sideNavPanel2.Controls.Add(this.warningBox4);
 | 
				
			||||||
 | 
								this.sideNavPanel2.Controls.Add(this.warningBox2);
 | 
				
			||||||
 | 
								this.sideNavPanel2.Controls.Add(this.swRmObsoleteROData);
 | 
				
			||||||
 | 
								this.sideNavPanel2.Controls.Add(this.swRefreshWordAttmts);
 | 
				
			||||||
 | 
								this.sideNavPanel2.Controls.Add(this.swStandardHypenChars);
 | 
				
			||||||
 | 
								this.sideNavPanel2.Controls.Add(this.labelX4);
 | 
				
			||||||
 | 
								this.sideNavPanel2.Controls.Add(this.labelX5);
 | 
				
			||||||
 | 
								this.sideNavPanel2.Controls.Add(this.labelX9);
 | 
				
			||||||
 | 
								this.sideNavPanel2.Controls.Add(this.swRmOrphanDataRecs);
 | 
				
			||||||
 | 
								this.sideNavPanel2.Controls.Add(this.labelX10);
 | 
				
			||||||
 | 
								this.sideNavPanel2.Controls.Add(this.labelX8);
 | 
				
			||||||
 | 
								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(89, 31);
 | 
				
			||||||
 | 
								this.sideNavPanel2.Name = "sideNavPanel2";
 | 
				
			||||||
 | 
								this.sideNavPanel2.Size = new System.Drawing.Size(291, 494);
 | 
				
			||||||
 | 
								this.sideNavPanel2.TabIndex = 6;
 | 
				
			||||||
 | 
								this.sideNavPanel2.Visible = false;
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
			// swRefreshTblsForSrch
 | 
								// swRefreshTblsForSrch
 | 
				
			||||||
			// 
 | 
								// 
 | 
				
			||||||
			// 
 | 
								// 
 | 
				
			||||||
@@ -517,6 +821,7 @@
 | 
				
			|||||||
			this.warningBox4.CloseButtonVisible = false;
 | 
								this.warningBox4.CloseButtonVisible = false;
 | 
				
			||||||
			this.warningBox4.Image = ((System.Drawing.Image)(resources.GetObject("warningBox4.Image")));
 | 
								this.warningBox4.Image = ((System.Drawing.Image)(resources.GetObject("warningBox4.Image")));
 | 
				
			||||||
			this.warningBox4.Location = new System.Drawing.Point(12, 264);
 | 
								this.warningBox4.Location = new System.Drawing.Point(12, 264);
 | 
				
			||||||
 | 
								this.warningBox4.Margin = new System.Windows.Forms.Padding(4);
 | 
				
			||||||
			this.warningBox4.Name = "warningBox4";
 | 
								this.warningBox4.Name = "warningBox4";
 | 
				
			||||||
			this.warningBox4.OptionsButtonVisible = false;
 | 
								this.warningBox4.OptionsButtonVisible = false;
 | 
				
			||||||
			this.warningBox4.Size = new System.Drawing.Size(264, 32);
 | 
								this.warningBox4.Size = new System.Drawing.Size(264, 32);
 | 
				
			||||||
@@ -529,6 +834,7 @@
 | 
				
			|||||||
			this.warningBox2.CloseButtonVisible = false;
 | 
								this.warningBox2.CloseButtonVisible = false;
 | 
				
			||||||
			this.warningBox2.Image = ((System.Drawing.Image)(resources.GetObject("warningBox2.Image")));
 | 
								this.warningBox2.Image = ((System.Drawing.Image)(resources.GetObject("warningBox2.Image")));
 | 
				
			||||||
			this.warningBox2.Location = new System.Drawing.Point(12, 302);
 | 
								this.warningBox2.Location = new System.Drawing.Point(12, 302);
 | 
				
			||||||
 | 
								this.warningBox2.Margin = new System.Windows.Forms.Padding(4);
 | 
				
			||||||
			this.warningBox2.Name = "warningBox2";
 | 
								this.warningBox2.Name = "warningBox2";
 | 
				
			||||||
			this.warningBox2.OptionsButtonVisible = false;
 | 
								this.warningBox2.OptionsButtonVisible = false;
 | 
				
			||||||
			this.warningBox2.Size = new System.Drawing.Size(264, 43);
 | 
								this.warningBox2.Size = new System.Drawing.Size(264, 43);
 | 
				
			||||||
@@ -703,171 +1009,6 @@
 | 
				
			|||||||
			this.btnRunRepair.Text = "Run Repair";
 | 
								this.btnRunRepair.Text = "Run Repair";
 | 
				
			||||||
			this.btnRunRepair.Click += new System.EventHandler(this.btnRunRepair_Click);
 | 
								this.btnRunRepair.Click += new System.EventHandler(this.btnRunRepair_Click);
 | 
				
			||||||
			// 
 | 
								// 
 | 
				
			||||||
			// sideNavPanel1
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.sideNavPanel1.Controls.Add(this.warningBox3);
 | 
					 | 
				
			||||||
			this.sideNavPanel1.Controls.Add(this.labelX7);
 | 
					 | 
				
			||||||
			this.sideNavPanel1.Controls.Add(this.line1);
 | 
					 | 
				
			||||||
			this.sideNavPanel1.Controls.Add(this.swCkObsoleteROData);
 | 
					 | 
				
			||||||
			this.sideNavPanel1.Controls.Add(this.swHiddenDataLocs);
 | 
					 | 
				
			||||||
			this.sideNavPanel1.Controls.Add(this.labelX3);
 | 
					 | 
				
			||||||
			this.sideNavPanel1.Controls.Add(this.labelX2);
 | 
					 | 
				
			||||||
			this.sideNavPanel1.Controls.Add(this.swCkOrphanDataRecs);
 | 
					 | 
				
			||||||
			this.sideNavPanel1.Controls.Add(this.labelX1);
 | 
					 | 
				
			||||||
			this.sideNavPanel1.Controls.Add(this.btnRunCheck);
 | 
					 | 
				
			||||||
			this.sideNavPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
 | 
					 | 
				
			||||||
			this.sideNavPanel1.Location = new System.Drawing.Point(80, 31);
 | 
					 | 
				
			||||||
			this.sideNavPanel1.Name = "sideNavPanel1";
 | 
					 | 
				
			||||||
			this.sideNavPanel1.Size = new System.Drawing.Size(300, 494);
 | 
					 | 
				
			||||||
			this.sideNavPanel1.TabIndex = 2;
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 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(17, 207);
 | 
					 | 
				
			||||||
			this.warningBox3.Name = "warningBox3";
 | 
					 | 
				
			||||||
			this.warningBox3.OptionsButtonVisible = false;
 | 
					 | 
				
			||||||
			this.warningBox3.Size = new System.Drawing.Size(264, 32);
 | 
					 | 
				
			||||||
			this.warningBox3.TabIndex = 29;
 | 
					 | 
				
			||||||
			this.warningBox3.Text = "<b>NOTE</b> These tools can take a long time to run";
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// labelX7
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.labelX7.BackColor = System.Drawing.Color.Transparent;
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.labelX7.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
					 | 
				
			||||||
			this.labelX7.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 | 
					 | 
				
			||||||
			this.labelX7.Location = new System.Drawing.Point(5, 3);
 | 
					 | 
				
			||||||
			this.labelX7.Name = "labelX7";
 | 
					 | 
				
			||||||
			this.labelX7.Size = new System.Drawing.Size(251, 22);
 | 
					 | 
				
			||||||
			this.labelX7.TabIndex = 19;
 | 
					 | 
				
			||||||
			this.labelX7.Text = "Check for these Data Issues:";
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// line1
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.line1.BackColor = System.Drawing.Color.Transparent;
 | 
					 | 
				
			||||||
			this.line1.Location = new System.Drawing.Point(8, 179);
 | 
					 | 
				
			||||||
			this.line1.Name = "line1";
 | 
					 | 
				
			||||||
			this.line1.Size = new System.Drawing.Size(285, 12);
 | 
					 | 
				
			||||||
			this.line1.TabIndex = 18;
 | 
					 | 
				
			||||||
			this.line1.Text = "line1";
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// swCkObsoleteROData
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.swCkObsoleteROData.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
					 | 
				
			||||||
			this.swCkObsoleteROData.Location = new System.Drawing.Point(10, 99);
 | 
					 | 
				
			||||||
			this.swCkObsoleteROData.Name = "swCkObsoleteROData";
 | 
					 | 
				
			||||||
			this.swCkObsoleteROData.Size = new System.Drawing.Size(91, 22);
 | 
					 | 
				
			||||||
			this.swCkObsoleteROData.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
 | 
					 | 
				
			||||||
			this.superTooltip1.SetSuperTooltip(this.swCkObsoleteROData, new DevComponents.DotNetBar.SuperTooltipInfo("Obsolete RO Data", "", resources.GetString("swCkObsoleteROData.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 135)));
 | 
					 | 
				
			||||||
			this.swCkObsoleteROData.SwitchClickTogglesValue = true;
 | 
					 | 
				
			||||||
			this.swCkObsoleteROData.TabIndex = 14;
 | 
					 | 
				
			||||||
			this.swCkObsoleteROData.Value = true;
 | 
					 | 
				
			||||||
			this.swCkObsoleteROData.ValueObject = "Y";
 | 
					 | 
				
			||||||
			this.swCkObsoleteROData.ValueChanged += new System.EventHandler(this.swCk_ValueChanged);
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// swHiddenDataLocs
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.swHiddenDataLocs.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
					 | 
				
			||||||
			this.swHiddenDataLocs.Location = new System.Drawing.Point(10, 71);
 | 
					 | 
				
			||||||
			this.swHiddenDataLocs.Name = "swHiddenDataLocs";
 | 
					 | 
				
			||||||
			this.swHiddenDataLocs.Size = new System.Drawing.Size(91, 22);
 | 
					 | 
				
			||||||
			this.swHiddenDataLocs.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
 | 
					 | 
				
			||||||
			this.superTooltip1.SetSuperTooltip(this.swHiddenDataLocs, new DevComponents.DotNetBar.SuperTooltipInfo("Hidden Data Locations", "", resources.GetString("swHiddenDataLocs.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
 | 
					 | 
				
			||||||
			this.swHiddenDataLocs.SwitchClickTogglesValue = true;
 | 
					 | 
				
			||||||
			this.swHiddenDataLocs.TabIndex = 15;
 | 
					 | 
				
			||||||
			this.swHiddenDataLocs.Value = true;
 | 
					 | 
				
			||||||
			this.swHiddenDataLocs.ValueObject = "Y";
 | 
					 | 
				
			||||||
			this.swHiddenDataLocs.ValueChanged += new System.EventHandler(this.swCk_ValueChanged);
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// labelX3
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.labelX3.BackColor = System.Drawing.Color.Transparent;
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.labelX3.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
					 | 
				
			||||||
			this.labelX3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 | 
					 | 
				
			||||||
			this.labelX3.Location = new System.Drawing.Point(107, 99);
 | 
					 | 
				
			||||||
			this.labelX3.Name = "labelX3";
 | 
					 | 
				
			||||||
			this.labelX3.Size = new System.Drawing.Size(154, 22);
 | 
					 | 
				
			||||||
			this.superTooltip1.SetSuperTooltip(this.labelX3, new DevComponents.DotNetBar.SuperTooltipInfo("Obsolete RO Data", "", resources.GetString("labelX3.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 135)));
 | 
					 | 
				
			||||||
			this.labelX3.TabIndex = 11;
 | 
					 | 
				
			||||||
			this.labelX3.Text = "Obsolete RO Data";
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// labelX2
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.labelX2.BackColor = System.Drawing.Color.Transparent;
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.labelX2.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
					 | 
				
			||||||
			this.labelX2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 | 
					 | 
				
			||||||
			this.labelX2.Location = new System.Drawing.Point(107, 71);
 | 
					 | 
				
			||||||
			this.labelX2.Name = "labelX2";
 | 
					 | 
				
			||||||
			this.labelX2.Size = new System.Drawing.Size(140, 22);
 | 
					 | 
				
			||||||
			this.superTooltip1.SetSuperTooltip(this.labelX2, new DevComponents.DotNetBar.SuperTooltipInfo("Hidden Data Locations", "", resources.GetString("labelX2.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
 | 
					 | 
				
			||||||
			this.labelX2.TabIndex = 12;
 | 
					 | 
				
			||||||
			this.labelX2.Text = "Hidden Data Locations";
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// swCkOrphanDataRecs
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.swCkOrphanDataRecs.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
					 | 
				
			||||||
			this.swCkOrphanDataRecs.Location = new System.Drawing.Point(10, 43);
 | 
					 | 
				
			||||||
			this.swCkOrphanDataRecs.Name = "swCkOrphanDataRecs";
 | 
					 | 
				
			||||||
			this.swCkOrphanDataRecs.Size = new System.Drawing.Size(91, 22);
 | 
					 | 
				
			||||||
			this.swCkOrphanDataRecs.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
 | 
					 | 
				
			||||||
			this.superTooltip1.SetSuperTooltip(this.swCkOrphanDataRecs, new DevComponents.DotNetBar.SuperTooltipInfo("Orphan Data Records", "", resources.GetString("swCkOrphanDataRecs.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(275, 193)));
 | 
					 | 
				
			||||||
			this.swCkOrphanDataRecs.SwitchClickTogglesValue = true;
 | 
					 | 
				
			||||||
			this.swCkOrphanDataRecs.TabIndex = 9;
 | 
					 | 
				
			||||||
			this.swCkOrphanDataRecs.Value = true;
 | 
					 | 
				
			||||||
			this.swCkOrphanDataRecs.ValueObject = "Y";
 | 
					 | 
				
			||||||
			this.swCkOrphanDataRecs.ValueChanged += new System.EventHandler(this.swCk_ValueChanged);
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// labelX1
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.labelX1.BackColor = System.Drawing.Color.Transparent;
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.labelX1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
					 | 
				
			||||||
			this.labelX1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 | 
					 | 
				
			||||||
			this.labelX1.Location = new System.Drawing.Point(107, 43);
 | 
					 | 
				
			||||||
			this.labelX1.Name = "labelX1";
 | 
					 | 
				
			||||||
			this.labelX1.Size = new System.Drawing.Size(172, 22);
 | 
					 | 
				
			||||||
			this.superTooltip1.SetSuperTooltip(this.labelX1, new DevComponents.DotNetBar.SuperTooltipInfo("Orphan Data Records", "", resources.GetString("labelX1.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(275, 190)));
 | 
					 | 
				
			||||||
			this.labelX1.TabIndex = 8;
 | 
					 | 
				
			||||||
			this.labelX1.Text = "Orphan Data Records";
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// btnRunCheck
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.btnRunCheck.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
 | 
					 | 
				
			||||||
			this.btnRunCheck.Checked = true;
 | 
					 | 
				
			||||||
			this.btnRunCheck.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
 | 
					 | 
				
			||||||
			this.btnRunCheck.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 | 
					 | 
				
			||||||
			this.btnRunCheck.Location = new System.Drawing.Point(5, 150);
 | 
					 | 
				
			||||||
			this.btnRunCheck.Name = "btnRunCheck";
 | 
					 | 
				
			||||||
			this.btnRunCheck.Size = new System.Drawing.Size(286, 23);
 | 
					 | 
				
			||||||
			this.btnRunCheck.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
 | 
					 | 
				
			||||||
			this.superTooltip1.SetSuperTooltip(this.btnRunCheck, new DevComponents.DotNetBar.SuperTooltipInfo("Run Check", "", "This will run the database check tools selected.\r\n\r\nClick on the on/off switches " +
 | 
					 | 
				
			||||||
            "to turn on/off each tool.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(200, 100)));
 | 
					 | 
				
			||||||
			this.btnRunCheck.TabIndex = 7;
 | 
					 | 
				
			||||||
			this.btnRunCheck.Text = "Run Check";
 | 
					 | 
				
			||||||
			this.btnRunCheck.Click += new System.EventHandler(this.btnRunCheck_Click);
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// sideNavPanel3
 | 
								// sideNavPanel3
 | 
				
			||||||
			// 
 | 
								// 
 | 
				
			||||||
			this.sideNavPanel3.Controls.Add(this.swCheckROLinks);
 | 
								this.sideNavPanel3.Controls.Add(this.swCheckROLinks);
 | 
				
			||||||
@@ -882,9 +1023,9 @@
 | 
				
			|||||||
			this.sideNavPanel3.Controls.Add(this.myTV);
 | 
								this.sideNavPanel3.Controls.Add(this.myTV);
 | 
				
			||||||
			this.sideNavPanel3.Controls.Add(this.btnFixLinks);
 | 
								this.sideNavPanel3.Controls.Add(this.btnFixLinks);
 | 
				
			||||||
			this.sideNavPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
 | 
								this.sideNavPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
 | 
				
			||||||
			this.sideNavPanel3.Location = new System.Drawing.Point(80, 31);
 | 
								this.sideNavPanel3.Location = new System.Drawing.Point(89, 31);
 | 
				
			||||||
			this.sideNavPanel3.Name = "sideNavPanel3";
 | 
								this.sideNavPanel3.Name = "sideNavPanel3";
 | 
				
			||||||
			this.sideNavPanel3.Size = new System.Drawing.Size(300, 494);
 | 
								this.sideNavPanel3.Size = new System.Drawing.Size(291, 494);
 | 
				
			||||||
			this.sideNavPanel3.TabIndex = 10;
 | 
								this.sideNavPanel3.TabIndex = 10;
 | 
				
			||||||
			this.sideNavPanel3.Visible = false;
 | 
								this.sideNavPanel3.Visible = false;
 | 
				
			||||||
			// 
 | 
								// 
 | 
				
			||||||
@@ -924,6 +1065,7 @@
 | 
				
			|||||||
			this.warningBox5.CloseButtonVisible = false;
 | 
								this.warningBox5.CloseButtonVisible = false;
 | 
				
			||||||
			this.warningBox5.Image = ((System.Drawing.Image)(resources.GetObject("warningBox5.Image")));
 | 
								this.warningBox5.Image = ((System.Drawing.Image)(resources.GetObject("warningBox5.Image")));
 | 
				
			||||||
			this.warningBox5.Location = new System.Drawing.Point(17, 145);
 | 
								this.warningBox5.Location = new System.Drawing.Point(17, 145);
 | 
				
			||||||
 | 
								this.warningBox5.Margin = new System.Windows.Forms.Padding(4);
 | 
				
			||||||
			this.warningBox5.Name = "warningBox5";
 | 
								this.warningBox5.Name = "warningBox5";
 | 
				
			||||||
			this.warningBox5.OptionsButtonVisible = false;
 | 
								this.warningBox5.OptionsButtonVisible = false;
 | 
				
			||||||
			this.warningBox5.Size = new System.Drawing.Size(262, 32);
 | 
								this.warningBox5.Size = new System.Drawing.Size(262, 32);
 | 
				
			||||||
@@ -1007,6 +1149,7 @@
 | 
				
			|||||||
			this.warningBox1.CloseButtonVisible = false;
 | 
								this.warningBox1.CloseButtonVisible = false;
 | 
				
			||||||
			this.warningBox1.Image = ((System.Drawing.Image)(resources.GetObject("warningBox1.Image")));
 | 
								this.warningBox1.Image = ((System.Drawing.Image)(resources.GetObject("warningBox1.Image")));
 | 
				
			||||||
			this.warningBox1.Location = new System.Drawing.Point(17, 181);
 | 
								this.warningBox1.Location = new System.Drawing.Point(17, 181);
 | 
				
			||||||
 | 
								this.warningBox1.Margin = new System.Windows.Forms.Padding(4);
 | 
				
			||||||
			this.warningBox1.Name = "warningBox1";
 | 
								this.warningBox1.Name = "warningBox1";
 | 
				
			||||||
			this.warningBox1.OptionsButtonVisible = false;
 | 
								this.warningBox1.OptionsButtonVisible = false;
 | 
				
			||||||
			this.warningBox1.Size = new System.Drawing.Size(262, 43);
 | 
								this.warningBox1.Size = new System.Drawing.Size(262, 43);
 | 
				
			||||||
@@ -1030,86 +1173,6 @@
 | 
				
			|||||||
			this.btnFixLinks.Text = "Process Links";
 | 
								this.btnFixLinks.Text = "Process Links";
 | 
				
			||||||
			this.btnFixLinks.Click += new System.EventHandler(this.btnFixLinks_Click);
 | 
								this.btnFixLinks.Click += new System.EventHandler(this.btnFixLinks_Click);
 | 
				
			||||||
			// 
 | 
								// 
 | 
				
			||||||
			// sideNavPanel2
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.sideNavPanel2.Controls.Add(this.swRefreshTblsForSrch);
 | 
					 | 
				
			||||||
			this.sideNavPanel2.Controls.Add(this.lblRefreshTblForSrch);
 | 
					 | 
				
			||||||
			this.sideNavPanel2.Controls.Add(this.warningBox4);
 | 
					 | 
				
			||||||
			this.sideNavPanel2.Controls.Add(this.warningBox2);
 | 
					 | 
				
			||||||
			this.sideNavPanel2.Controls.Add(this.swRmObsoleteROData);
 | 
					 | 
				
			||||||
			this.sideNavPanel2.Controls.Add(this.swRefreshWordAttmts);
 | 
					 | 
				
			||||||
			this.sideNavPanel2.Controls.Add(this.swStandardHypenChars);
 | 
					 | 
				
			||||||
			this.sideNavPanel2.Controls.Add(this.labelX4);
 | 
					 | 
				
			||||||
			this.sideNavPanel2.Controls.Add(this.labelX5);
 | 
					 | 
				
			||||||
			this.sideNavPanel2.Controls.Add(this.labelX9);
 | 
					 | 
				
			||||||
			this.sideNavPanel2.Controls.Add(this.swRmOrphanDataRecs);
 | 
					 | 
				
			||||||
			this.sideNavPanel2.Controls.Add(this.labelX10);
 | 
					 | 
				
			||||||
			this.sideNavPanel2.Controls.Add(this.labelX8);
 | 
					 | 
				
			||||||
			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(80, 31);
 | 
					 | 
				
			||||||
			this.sideNavPanel2.Name = "sideNavPanel2";
 | 
					 | 
				
			||||||
			this.sideNavPanel2.Size = new System.Drawing.Size(300, 494);
 | 
					 | 
				
			||||||
			this.sideNavPanel2.TabIndex = 6;
 | 
					 | 
				
			||||||
			this.sideNavPanel2.Visible = false;
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// swRefreshTblsForSrch
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.swRefreshTblsForSrch.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
					 | 
				
			||||||
			this.swRefreshTblsForSrch.Location = new System.Drawing.Point(10, 153);
 | 
					 | 
				
			||||||
			this.swRefreshTblsForSrch.Name = "swRefreshTblsForSrch";
 | 
					 | 
				
			||||||
			this.swRefreshTblsForSrch.Size = new System.Drawing.Size(91, 22);
 | 
					 | 
				
			||||||
			this.swRefreshTblsForSrch.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
 | 
					 | 
				
			||||||
			this.superTooltip1.SetSuperTooltip(this.swRefreshTblsForSrch, new DevComponents.DotNetBar.SuperTooltipInfo("Refresh Word Attachments", "", resources.GetString("swRefreshTblsForSrch.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(300, 200)));
 | 
					 | 
				
			||||||
			this.swRefreshTblsForSrch.SwitchClickTogglesValue = true;
 | 
					 | 
				
			||||||
			this.swRefreshTblsForSrch.TabIndex = 32;
 | 
					 | 
				
			||||||
			this.swRefreshTblsForSrch.Value = true;
 | 
					 | 
				
			||||||
			this.swRefreshTblsForSrch.ValueObject = "Y";
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// lblRefreshTblForSrch
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.lblRefreshTblForSrch.BackColor = System.Drawing.Color.Transparent;
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.lblRefreshTblForSrch.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
 | 
					 | 
				
			||||||
			this.lblRefreshTblForSrch.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 | 
					 | 
				
			||||||
			this.lblRefreshTblForSrch.Location = new System.Drawing.Point(107, 153);
 | 
					 | 
				
			||||||
			this.lblRefreshTblForSrch.Name = "lblRefreshTblForSrch";
 | 
					 | 
				
			||||||
			this.lblRefreshTblForSrch.Size = new System.Drawing.Size(186, 22);
 | 
					 | 
				
			||||||
			this.superTooltip1.SetSuperTooltip(this.lblRefreshTblForSrch, new DevComponents.DotNetBar.SuperTooltipInfo("Refresh Word Attachments", "", resources.GetString("lblRefreshTblForSrch.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(300, 200)));
 | 
					 | 
				
			||||||
			this.lblRefreshTblForSrch.TabIndex = 31;
 | 
					 | 
				
			||||||
			this.lblRefreshTblForSrch.Text = "Refresh Tables For Search";
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// sideNavPanel4
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.sideNavPanel4.Controls.Add(this.btn_ShowUsers);
 | 
					 | 
				
			||||||
			this.sideNavPanel4.Dock = System.Windows.Forms.DockStyle.Fill;
 | 
					 | 
				
			||||||
			this.sideNavPanel4.Location = new System.Drawing.Point(81, 31);
 | 
					 | 
				
			||||||
			this.sideNavPanel4.Name = "sideNavPanel4";
 | 
					 | 
				
			||||||
			this.sideNavPanel4.Size = new System.Drawing.Size(299, 494);
 | 
					 | 
				
			||||||
			this.sideNavPanel4.TabIndex = 14;
 | 
					 | 
				
			||||||
			this.sideNavPanel4.Visible = false;
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// btn_ShowUsers
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			this.btn_ShowUsers.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
 | 
					 | 
				
			||||||
			this.btn_ShowUsers.Checked = true;
 | 
					 | 
				
			||||||
			this.btn_ShowUsers.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
 | 
					 | 
				
			||||||
			this.btn_ShowUsers.Location = new System.Drawing.Point(57, 37);
 | 
					 | 
				
			||||||
			this.btn_ShowUsers.Name = "btn_ShowUsers";
 | 
					 | 
				
			||||||
			this.btn_ShowUsers.Size = new System.Drawing.Size(171, 23);
 | 
					 | 
				
			||||||
			this.btn_ShowUsers.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
 | 
					 | 
				
			||||||
			this.superTooltip1.SetSuperTooltip(this.btn_ShowUsers, new DevComponents.DotNetBar.SuperTooltipInfo("Show Users", "", "This will return all of the users currently with open sessions in the database an" +
 | 
					 | 
				
			||||||
            "d the details of any items they have checked out.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(200, 80)));
 | 
					 | 
				
			||||||
			this.btn_ShowUsers.TabIndex = 0;
 | 
					 | 
				
			||||||
			this.btn_ShowUsers.Text = "Show Users";
 | 
					 | 
				
			||||||
			this.btn_ShowUsers.Click += new System.EventHandler(this.btn_ShowUsers_Click);
 | 
					 | 
				
			||||||
			// 
 | 
					 | 
				
			||||||
			// sideNavItem1
 | 
								// sideNavItem1
 | 
				
			||||||
			// 
 | 
								// 
 | 
				
			||||||
			this.sideNavItem1.IsSystemMenu = true;
 | 
								this.sideNavItem1.IsSystemMenu = true;
 | 
				
			||||||
@@ -1129,7 +1192,6 @@
 | 
				
			|||||||
			// 
 | 
								// 
 | 
				
			||||||
			// sideNavItmCheck
 | 
								// sideNavItmCheck
 | 
				
			||||||
			// 
 | 
								// 
 | 
				
			||||||
			this.sideNavItmCheck.Checked = true;
 | 
					 | 
				
			||||||
			this.sideNavItmCheck.Name = "sideNavItmCheck";
 | 
								this.sideNavItmCheck.Name = "sideNavItmCheck";
 | 
				
			||||||
			this.sideNavItmCheck.Panel = this.sideNavPanel1;
 | 
								this.sideNavItmCheck.Panel = this.sideNavPanel1;
 | 
				
			||||||
			this.sideNavItmCheck.Symbol = "";
 | 
								this.sideNavItmCheck.Symbol = "";
 | 
				
			||||||
@@ -1155,11 +1217,26 @@
 | 
				
			|||||||
			// sideNavItmUsers
 | 
								// sideNavItmUsers
 | 
				
			||||||
			// 
 | 
								// 
 | 
				
			||||||
			this.sideNavItmUsers.Name = "sideNavItmUsers";
 | 
								this.sideNavItmUsers.Name = "sideNavItmUsers";
 | 
				
			||||||
			this.sideNavItmUsers.Panel = this.sideNavPanel4;
 | 
								this.sideNavItmUsers.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
 | 
				
			||||||
 | 
					            this.buttonItem1});
 | 
				
			||||||
			this.sideNavItmUsers.Symbol = "";
 | 
								this.sideNavItmUsers.Symbol = "";
 | 
				
			||||||
			this.sideNavItmUsers.Text = "Users";
 | 
								this.sideNavItmUsers.Text = "Users";
 | 
				
			||||||
			this.sideNavItmUsers.Click += new System.EventHandler(this.sideNavItmUsers_Click);
 | 
								this.sideNavItmUsers.Click += new System.EventHandler(this.sideNavItmUsers_Click);
 | 
				
			||||||
			// 
 | 
								// 
 | 
				
			||||||
 | 
								// buttonItem1
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.buttonItem1.Name = "buttonItem1";
 | 
				
			||||||
 | 
								this.buttonItem1.Text = "buttonItem1";
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								// sideNavItmDelete
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
 | 
								this.sideNavItmDelete.Checked = true;
 | 
				
			||||||
 | 
								this.sideNavItmDelete.Name = "sideNavItmDelete";
 | 
				
			||||||
 | 
								this.sideNavItmDelete.Panel = this.sideNavPanel4;
 | 
				
			||||||
 | 
								this.sideNavItmDelete.Symbol = "";
 | 
				
			||||||
 | 
								this.sideNavItmDelete.Text = "Delete";
 | 
				
			||||||
 | 
								this.sideNavItmDelete.Click += new System.EventHandler(this.sideNavItmDelete_Click);
 | 
				
			||||||
 | 
								// 
 | 
				
			||||||
			// sideNavItmExit
 | 
								// sideNavItmExit
 | 
				
			||||||
			// 
 | 
								// 
 | 
				
			||||||
			this.sideNavItmExit.Name = "sideNavItmExit";
 | 
								this.sideNavItmExit.Name = "sideNavItmExit";
 | 
				
			||||||
@@ -1286,11 +1363,10 @@
 | 
				
			|||||||
			this.panelEx1.ResumeLayout(false);
 | 
								this.panelEx1.ResumeLayout(false);
 | 
				
			||||||
			this.sideNav1.ResumeLayout(false);
 | 
								this.sideNav1.ResumeLayout(false);
 | 
				
			||||||
			this.sideNav1.PerformLayout();
 | 
								this.sideNav1.PerformLayout();
 | 
				
			||||||
			this.sideNavPanel2.ResumeLayout(false);
 | 
					 | 
				
			||||||
			this.sideNavPanel1.ResumeLayout(false);
 | 
					 | 
				
			||||||
			this.sideNavPanel3.ResumeLayout(false);
 | 
					 | 
				
			||||||
			//this.sideNavPanel2.ResumeLayout(false);
 | 
					 | 
				
			||||||
			this.sideNavPanel4.ResumeLayout(false);
 | 
								this.sideNavPanel4.ResumeLayout(false);
 | 
				
			||||||
 | 
								this.sideNavPanel1.ResumeLayout(false);
 | 
				
			||||||
 | 
								this.sideNavPanel2.ResumeLayout(false);
 | 
				
			||||||
 | 
								this.sideNavPanel3.ResumeLayout(false);
 | 
				
			||||||
			this.panelEx4.ResumeLayout(false);
 | 
								this.panelEx4.ResumeLayout(false);
 | 
				
			||||||
			this.ResumeLayout(false);
 | 
								this.ResumeLayout(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1340,8 +1416,6 @@
 | 
				
			|||||||
		private DevComponents.DotNetBar.LabelX labelX8;
 | 
							private DevComponents.DotNetBar.LabelX labelX8;
 | 
				
			||||||
		private DevComponents.DotNetBar.Controls.Line line2;
 | 
							private DevComponents.DotNetBar.Controls.Line line2;
 | 
				
			||||||
		private DevComponents.DotNetBar.ButtonX btnRunRepair;
 | 
							private DevComponents.DotNetBar.ButtonX btnRunRepair;
 | 
				
			||||||
		private DevComponents.DotNetBar.Controls.SideNavPanel sideNavPanel4;
 | 
					 | 
				
			||||||
		private DevComponents.DotNetBar.ButtonX btn_ShowUsers;
 | 
					 | 
				
			||||||
		private DevComponents.DotNetBar.Controls.SideNavPanel sideNavPanel3;
 | 
							private DevComponents.DotNetBar.Controls.SideNavPanel sideNavPanel3;
 | 
				
			||||||
		private DevComponents.DotNetBar.ButtonX btnFixLinks;
 | 
							private DevComponents.DotNetBar.ButtonX btnFixLinks;
 | 
				
			||||||
		private DevComponents.DotNetBar.Controls.SideNavItem sideNavItem1;
 | 
							private DevComponents.DotNetBar.Controls.SideNavItem sideNavItem1;
 | 
				
			||||||
@@ -1376,5 +1450,16 @@
 | 
				
			|||||||
		private DevComponents.DotNetBar.LabelX lblRefreshTblForSrch;
 | 
							private DevComponents.DotNetBar.LabelX lblRefreshTblForSrch;
 | 
				
			||||||
		private DevComponents.DotNetBar.Controls.SwitchButton swCheckROLinks;
 | 
							private DevComponents.DotNetBar.Controls.SwitchButton swCheckROLinks;
 | 
				
			||||||
		private DevComponents.DotNetBar.LabelX labelX12;
 | 
							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.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;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,6 +28,16 @@ namespace VEPROMS
 | 
				
			|||||||
		{
 | 
							{
 | 
				
			||||||
			InitializeComponent();
 | 
								InitializeComponent();
 | 
				
			||||||
			_MySessionInfo = sessionInfo;
 | 
								_MySessionInfo = sessionInfo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if (sideNavItmDelete.Checked)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									AdminToolType = (E_AdminToolType)4;
 | 
				
			||||||
 | 
									if (swDeleteFolder.Value)
 | 
				
			||||||
 | 
										ResetDelTV(true);
 | 
				
			||||||
 | 
									else
 | 
				
			||||||
 | 
										ResetDelTV(false);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			setupProgessSteps1(); // C2017-030 - new Admin Tools user interface
 | 
								setupProgessSteps1(); // C2017-030 - new Admin Tools user interface
 | 
				
			||||||
			UserInfo ui = UserInfo.GetByUserID(MySessionInfo.UserID);
 | 
								UserInfo ui = UserInfo.GetByUserID(MySessionInfo.UserID);
 | 
				
			||||||
			IsAdministratorUser = ui.IsAdministrator();
 | 
								IsAdministratorUser = ui.IsAdministrator();
 | 
				
			||||||
@@ -43,18 +53,25 @@ namespace VEPROMS
 | 
				
			|||||||
				swStandardHypenChars.Enabled = false;
 | 
									swStandardHypenChars.Enabled = false;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							// Make txtProcess text box available to frmAnnotationsClean form.
 | 
				
			||||||
 | 
							internal TextBox GettxtProcess()
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								return txtProcess;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		// NOTE:  removed the Refresh ROs and Refresh Transitions and ROs options (now only Transitions can be refreshed)
 | 
							// NOTE:  removed the Refresh ROs and Refresh Transitions and ROs options (now only Transitions can be refreshed)
 | 
				
			||||||
		// the Update ROs and Refresh ROs logic was merged together.  The Update ROs will functionally do both
 | 
							// the Update ROs and Refresh ROs logic was merged together.  The Update ROs will functionally do both
 | 
				
			||||||
		// also annotations will be placed on step elements that have RO changes
 | 
							// also annotations will be placed on step elements that have RO changes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// make all of the hyphen character consistant so they can all be found with the Search function
 | 
							// make all of the hyphen character consistant so they can all be found with the Search function
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		private void FixHyphens()
 | 
							private void FixHyphens()
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			this.Cursor = Cursors.WaitCursor;
 | 
								this.Cursor = Cursors.WaitCursor;
 | 
				
			||||||
			DateTime pStart = DateTime.Now;
 | 
								DateTime pStart = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText("Standardizing Hyphens");
 | 
								txtProcess.AppendText("Standardizing Hyphens");
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
			int affectedRows = ESP_FixHyphens.Execute("vesp_FixHyphens") / 2;// Two results for each change
 | 
								int affectedRows = ESP_FixHyphens.Execute("vesp_FixHyphens") / 2;// Two results for each change
 | 
				
			||||||
@@ -65,7 +82,7 @@ namespace VEPROMS
 | 
				
			|||||||
			txtResults.AppendText(Environment.NewLine);
 | 
								txtResults.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtResults.AppendText(Environment.NewLine);
 | 
								txtResults.AppendText(Environment.NewLine);
 | 
				
			||||||
			DateTime pEnd = DateTime.Now;
 | 
								DateTime pEnd = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
@@ -125,6 +142,60 @@ namespace VEPROMS
 | 
				
			|||||||
				myTV.SelectedNode.Expand();
 | 
									myTV.SelectedNode.Expand();
 | 
				
			||||||
			this.Cursor = Cursors.Default;
 | 
								this.Cursor = Cursors.Default;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							private void ResetDelTV()
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								ResetDelTV(false);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							private void ResetDelTV(bool noProcs)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								btnFixLinks.Enabled = false;
 | 
				
			||||||
 | 
								this.Cursor = Cursors.WaitCursor;
 | 
				
			||||||
 | 
								myTVdel.Nodes.Clear();
 | 
				
			||||||
 | 
								myDocVersions.Clear();
 | 
				
			||||||
 | 
								FolderInfo fi = FolderInfo.GetTop();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if (fi.ChildFolderCount > 0)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (noProcs)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										LoadBottomLevelFolders(fi, myTVdel);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									else
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										TreeNode tn = new TreeNode(fi.Name);
 | 
				
			||||||
 | 
										tn.Tag = fi;
 | 
				
			||||||
 | 
										tn.StateImageIndex = -1; // Hide the checkbox for the root node
 | 
				
			||||||
 | 
										LoadChildFolders(fi, tn, noProcs);
 | 
				
			||||||
 | 
										myTVdel.Nodes.Add(tn);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if (myTVdel.SelectedNode != null)
 | 
				
			||||||
 | 
									myTVdel.SelectedNode.Expand();
 | 
				
			||||||
 | 
								this.Cursor = Cursors.Default;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								//btnFixLinks.Enabled = false;
 | 
				
			||||||
 | 
								//this.Cursor = Cursors.WaitCursor;
 | 
				
			||||||
 | 
								////myTreeNodePath = new List<string>();
 | 
				
			||||||
 | 
								//myTVdel.Nodes.Clear();
 | 
				
			||||||
 | 
								//myDocVersions.Clear();
 | 
				
			||||||
 | 
								//FolderInfo fi = FolderInfo.GetTop();
 | 
				
			||||||
 | 
								//TreeNode tn = myTVdel.Nodes.Add(fi.Name );
 | 
				
			||||||
 | 
								//tn.Tag = fi;
 | 
				
			||||||
 | 
								//if (fi.ChildFolderCount > 0)
 | 
				
			||||||
 | 
								//{
 | 
				
			||||||
 | 
								//	if (noProcs)
 | 
				
			||||||
 | 
								//	{
 | 
				
			||||||
 | 
								//		LoadBottomLevelFolders(fi, myTVdel);
 | 
				
			||||||
 | 
								//	}
 | 
				
			||||||
 | 
								//	else
 | 
				
			||||||
 | 
								//		LoadChildFolders(fi, tn, noProcs);
 | 
				
			||||||
 | 
								//}
 | 
				
			||||||
 | 
								//if (myTVdel.SelectedNode != null)
 | 
				
			||||||
 | 
								//	myTVdel.SelectedNode.Expand();
 | 
				
			||||||
 | 
								//this.Cursor = Cursors.Default;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// B2021-060 Higher level folders where being removed from the tree even if there was a child folder that containe a working draft set
 | 
							// B2021-060 Higher level folders where being removed from the tree even if there was a child folder that containe a working draft set
 | 
				
			||||||
		private bool LoadChildFolders(FolderInfo fi, TreeNode tn, bool noProcs)
 | 
							private bool LoadChildFolders(FolderInfo fi, TreeNode tn, bool noProcs)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
@@ -135,8 +206,8 @@ namespace VEPROMS
 | 
				
			|||||||
				TreeNode tnc = tn.Nodes.Add(fic.Name);
 | 
									TreeNode tnc = tn.Nodes.Add(fic.Name);
 | 
				
			||||||
				tnc.Tag = fic;
 | 
									tnc.Tag = fic;
 | 
				
			||||||
				if (fic.ChildFolderCount > 0)
 | 
									if (fic.ChildFolderCount > 0)
 | 
				
			||||||
					if(LoadChildFolders(fic, tnc, noProcs))
 | 
										if (LoadChildFolders(fic, tnc, noProcs))
 | 
				
			||||||
						loadedChildWorkingDraft=true;
 | 
											loadedChildWorkingDraft = true;
 | 
				
			||||||
				// B2020-114 and C2020-035 only show folders the Set Admin can access
 | 
									// B2020-114 and C2020-035 only show folders the Set Admin can access
 | 
				
			||||||
				if (fic.FolderDocVersionCount > 0)
 | 
									if (fic.FolderDocVersionCount > 0)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
@@ -151,6 +222,34 @@ namespace VEPROMS
 | 
				
			|||||||
				tn.Remove();
 | 
									tn.Remove();
 | 
				
			||||||
			return loadedWorkingDraft;
 | 
								return loadedWorkingDraft;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							/// <summary>
 | 
				
			||||||
 | 
							/// Load only bottom layer of folders into treenode.
 | 
				
			||||||
 | 
							/// </summary>
 | 
				
			||||||
 | 
							/// <param name="fi"></param>
 | 
				
			||||||
 | 
							/// <param name="tn"></param>
 | 
				
			||||||
 | 
							private void LoadBottomLevelFolders(FolderInfo fi, TreeView treeView)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								foreach (FolderInfo fic in fi.SortedChildFolders)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (fic.ChildFolderCount > 0)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										// Recursively call for child folders
 | 
				
			||||||
 | 
										LoadBottomLevelFolders(fic, treeView);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									else
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										if (fic.Name != "PROMS")
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											// If the folder is a bottom-level folder (no child folders), add it directly to the TreeView
 | 
				
			||||||
 | 
											TreeNode tnc = treeView.Nodes.Add(fic.Name);
 | 
				
			||||||
 | 
											tnc.Tag = fic;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		private bool LoadDocVersions(FolderInfo fic, TreeNode tnc, bool noProcs)
 | 
							private bool LoadDocVersions(FolderInfo fic, TreeNode tnc, bool noProcs)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			bool rtnval = false;
 | 
								bool rtnval = false;
 | 
				
			||||||
@@ -412,7 +511,7 @@ namespace VEPROMS
 | 
				
			|||||||
			DateTime pStart = DateTime.Now;
 | 
								DateTime pStart = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText("Refresh Transitions");
 | 
								txtProcess.AppendText("Refresh Transitions");
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtResults.AppendText("Refresh Transitions");
 | 
								txtResults.AppendText("Refresh Transitions");
 | 
				
			||||||
			txtResults.AppendText(Environment.NewLine);
 | 
								txtResults.AppendText(Environment.NewLine);
 | 
				
			||||||
@@ -449,19 +548,19 @@ namespace VEPROMS
 | 
				
			|||||||
						Application.DoEvents();
 | 
											Application.DoEvents();
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				if (numTransFixed == 0 && numTransConverted ==0)
 | 
									if (numTransFixed == 0 && numTransConverted == 0)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					txtResults.AppendText("No Transitions Needed Updated.");
 | 
										txtResults.AppendText("No Transitions Needed Updated.");
 | 
				
			||||||
					txtResults.AppendText(Environment.NewLine);
 | 
										txtResults.AppendText(Environment.NewLine);
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				ContentInfo.StaticContentInfoChange -= new StaticContentInfoEvent(ContentInfo_StaticContentInfoChange);
 | 
									ContentInfo.StaticContentInfoChange -= new StaticContentInfoEvent(ContentInfo_StaticContentInfoChange);
 | 
				
			||||||
				DateTime pEnd = DateTime.Now;
 | 
									DateTime pEnd = DateTime.Now;
 | 
				
			||||||
				txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
									txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
				txtProcess.AppendText(Environment.NewLine);
 | 
									txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
				txtProcess.AppendText(string.Format("Transitions Checked: {0}",numTransProcessed));
 | 
									txtProcess.AppendText(string.Format("Transitions Checked: {0}", numTransProcessed));
 | 
				
			||||||
				txtProcess.AppendText(Environment.NewLine);
 | 
									txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
				// B2018-002 - Invalid Transitions - Display Transition Refresh Statistics
 | 
									// B2018-002 - Invalid Transitions - Display Transition Refresh Statistics
 | 
				
			||||||
				txtProcess.AppendText(string.Format("Transitions Correct As Is: {0}",numTransProcessed - (numTransConverted + numTransFixed)));
 | 
									txtProcess.AppendText(string.Format("Transitions Correct As Is: {0}", numTransProcessed - (numTransConverted + numTransFixed)));
 | 
				
			||||||
				txtProcess.AppendText(Environment.NewLine);
 | 
									txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
				txtProcess.AppendText(string.Format("Transitions Modified: {0}", numTransFixed));
 | 
									txtProcess.AppendText(string.Format("Transitions Modified: {0}", numTransFixed));
 | 
				
			||||||
				txtProcess.AppendText(Environment.NewLine);
 | 
									txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
@@ -490,10 +589,10 @@ namespace VEPROMS
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
			this.Cursor = Cursors.Default;
 | 
								this.Cursor = Cursors.Default;
 | 
				
			||||||
			// B2018-002 - Invalid Transitions - Display Transition Refresh Statisitic
 | 
								// B2018-002 - Invalid Transitions - Display Transition Refresh Statisitic
 | 
				
			||||||
			if (numTransFixed == 0 && numTransConverted ==0)
 | 
								if (numTransFixed == 0 && numTransConverted == 0)
 | 
				
			||||||
				MessageBox.Show(string.Format("{0} Transitions Checked.\n\nNo Transitions Modified.",numTransProcessed), "Refresh Transitions Completed");
 | 
									MessageBox.Show(string.Format("{0} Transitions Checked.\n\nNo Transitions Modified.", numTransProcessed), "Refresh Transitions Completed");
 | 
				
			||||||
			else
 | 
								else
 | 
				
			||||||
				MessageBox.Show(string.Format("{0} Transitions Checked.\n\n {1} Correct as is.\n\n {2} Transitions modified.\n\n {3} Transitions converted to text.", numTransProcessed, numTransProcessed - (numTransFixed + numTransConverted),numTransFixed, numTransConverted), "Refresh Transitions Completed");
 | 
									MessageBox.Show(string.Format("{0} Transitions Checked.\n\n {1} Correct as is.\n\n {2} Transitions modified.\n\n {3} Transitions converted to text.", numTransProcessed, numTransProcessed - (numTransFixed + numTransConverted), numTransFixed, numTransConverted), "Refresh Transitions Completed");
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// C2017-030 - new Admin Tools user interface
 | 
							// C2017-030 - new Admin Tools user interface
 | 
				
			||||||
@@ -506,7 +605,7 @@ namespace VEPROMS
 | 
				
			|||||||
			DateTime pStart = DateTime.Now;
 | 
								DateTime pStart = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText("Refreshing Word Attachments");
 | 
								txtProcess.AppendText("Refreshing Word Attachments");
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
			int affectedRows = ESP_DeletePDFs.Execute("vesp_DeletePDFs");
 | 
								int affectedRows = ESP_DeletePDFs.Execute("vesp_DeletePDFs");
 | 
				
			||||||
@@ -516,7 +615,7 @@ namespace VEPROMS
 | 
				
			|||||||
			txtResults.AppendText(Environment.NewLine);
 | 
								txtResults.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtResults.AppendText(Environment.NewLine);
 | 
								txtResults.AppendText(Environment.NewLine);
 | 
				
			||||||
			DateTime pEnd = DateTime.Now;
 | 
								DateTime pEnd = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
@@ -615,7 +714,7 @@ namespace VEPROMS
 | 
				
			|||||||
			DateTime pStart = DateTime.Now;
 | 
								DateTime pStart = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText("Identifing Orphan Items");
 | 
								txtProcess.AppendText("Identifing Orphan Items");
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
			int rowCount = ESP_IdentifyDisconnectedItems.Execute("vesp_GetDisconnectedItemsCount");
 | 
								int rowCount = ESP_IdentifyDisconnectedItems.Execute("vesp_GetDisconnectedItemsCount");
 | 
				
			||||||
@@ -636,7 +735,7 @@ namespace VEPROMS
 | 
				
			|||||||
				txtResults.AppendText(Environment.NewLine);
 | 
									txtResults.AppendText(Environment.NewLine);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			DateTime pEnd = DateTime.Now;
 | 
								DateTime pEnd = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
@@ -652,7 +751,7 @@ namespace VEPROMS
 | 
				
			|||||||
			DateTime pStart = DateTime.Now;
 | 
								DateTime pStart = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText("Purging Orphan Items");
 | 
								txtProcess.AppendText("Purging Orphan Items");
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
			int rowCount = ESP_IdentifyDisconnectedItems.Execute("vesp_GetDisconnectedItemsCount");
 | 
								int rowCount = ESP_IdentifyDisconnectedItems.Execute("vesp_GetDisconnectedItemsCount");
 | 
				
			||||||
@@ -689,7 +788,7 @@ namespace VEPROMS
 | 
				
			|||||||
				txtResults.AppendText(Environment.NewLine);
 | 
									txtResults.AppendText(Environment.NewLine);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			DateTime pEnd = DateTime.Now;
 | 
								DateTime pEnd = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
@@ -704,7 +803,7 @@ namespace VEPROMS
 | 
				
			|||||||
			DateTime pStart = DateTime.Now;
 | 
								DateTime pStart = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText("Identifing Unused RoFsts and Figures");
 | 
								txtProcess.AppendText("Identifing Unused RoFsts and Figures");
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
			int rowCountRoFst = ESP_GetUnusedRoFsts.Execute("vesp_GetUnusedRoFstsCount");
 | 
								int rowCountRoFst = ESP_GetUnusedRoFsts.Execute("vesp_GetUnusedRoFstsCount");
 | 
				
			||||||
@@ -727,9 +826,9 @@ namespace VEPROMS
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			DateTime pEnd = DateTime.Now;
 | 
								DateTime pEnd = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
			this.Cursor = Cursors.Default;
 | 
								this.Cursor = Cursors.Default;
 | 
				
			||||||
@@ -742,7 +841,7 @@ namespace VEPROMS
 | 
				
			|||||||
			DateTime pStart = DateTime.Now;
 | 
								DateTime pStart = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText("Purging Unused RoFSTs and Figures Items");
 | 
								txtProcess.AppendText("Purging Unused RoFSTs and Figures Items");
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
			int rowCountRoFst = ESP_GetUnusedRoFsts.Execute("vesp_GetUnusedRoFstsCount");
 | 
								int rowCountRoFst = ESP_GetUnusedRoFsts.Execute("vesp_GetUnusedRoFstsCount");
 | 
				
			||||||
@@ -783,7 +882,7 @@ namespace VEPROMS
 | 
				
			|||||||
				txtResults.AppendText(Environment.NewLine);
 | 
									txtResults.AppendText(Environment.NewLine);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			DateTime pEnd = DateTime.Now;
 | 
								DateTime pEnd = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
@@ -798,7 +897,7 @@ namespace VEPROMS
 | 
				
			|||||||
			DateTime pStart = DateTime.Now;
 | 
								DateTime pStart = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText("Identifing Unused RO Associations");
 | 
								txtProcess.AppendText("Identifing Unused RO Associations");
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
			int rowCount = ESP_GetROAssoc.Execute("vesp_GetUnusedROAssociationsCount");
 | 
								int rowCount = ESP_GetROAssoc.Execute("vesp_GetUnusedROAssociationsCount");
 | 
				
			||||||
@@ -817,7 +916,7 @@ namespace VEPROMS
 | 
				
			|||||||
				txtResults.AppendText(Environment.NewLine);
 | 
									txtResults.AppendText(Environment.NewLine);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			DateTime pEnd = DateTime.Now;
 | 
								DateTime pEnd = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
@@ -832,7 +931,7 @@ namespace VEPROMS
 | 
				
			|||||||
			DateTime pStart = DateTime.Now;
 | 
								DateTime pStart = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText("Purging Unused Referenced Object Associations");
 | 
								txtProcess.AppendText("Purging Unused Referenced Object Associations");
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
			int rowCount = ESP_GetROAssoc.Execute("vesp_GetUnusedROAssociationsCount");
 | 
								int rowCount = ESP_GetROAssoc.Execute("vesp_GetUnusedROAssociationsCount");
 | 
				
			||||||
@@ -866,7 +965,7 @@ namespace VEPROMS
 | 
				
			|||||||
				txtResults.AppendText(Environment.NewLine);
 | 
									txtResults.AppendText(Environment.NewLine);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			DateTime pEnd = DateTime.Now;
 | 
								DateTime pEnd = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
@@ -881,11 +980,11 @@ namespace VEPROMS
 | 
				
			|||||||
			DateTime pStart = DateTime.Now;
 | 
								DateTime pStart = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText("Identifing Hidden Item Locations");
 | 
								txtProcess.AppendText("Identifing Hidden Item Locations");
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
			List<ItemInfo> myItems = ESP_IdentifyNonEditableItems.Execute("vesp_GetNonEditableItems");
 | 
								List<ItemInfo> myItems = ESP_IdentifyNonEditableItems.Execute("vesp_GetNonEditableItems");
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Hidden Items Count:  {0}",myItems.Count));
 | 
								txtProcess.AppendText(string.Format("Hidden Items Count:  {0}", myItems.Count));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			if (myItems.Count > 0)
 | 
								if (myItems.Count > 0)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
@@ -906,7 +1005,7 @@ namespace VEPROMS
 | 
				
			|||||||
				txtResults.AppendText(Environment.NewLine);
 | 
									txtResults.AppendText(Environment.NewLine);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			DateTime pEnd = DateTime.Now;
 | 
								DateTime pEnd = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
@@ -921,16 +1020,16 @@ namespace VEPROMS
 | 
				
			|||||||
			DateTime pStart = DateTime.Now;
 | 
								DateTime pStart = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText("Show Users in PROMS");
 | 
								txtProcess.AppendText("Show Users in PROMS");
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Started: {0}",pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Started: {0}", pStart.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			txtProcess.AppendText(Environment.NewLine);
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
			txtResults.Clear();
 | 
								txtResults.Clear();
 | 
				
			||||||
			txtResults.AppendText(ESP_GetDatabaseSessions.Execute("vesp_GetDatabaseSessions"));
 | 
								txtResults.AppendText(ESP_GetDatabaseSessions.Execute("vesp_GetDatabaseSessions"));
 | 
				
			||||||
			DateTime pEnd = DateTime.Now;
 | 
								DateTime pEnd = DateTime.Now;
 | 
				
			||||||
			txtProcess.AppendText(string.Format("Completed: {0}",pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
								txtProcess.AppendText(string.Format("Completed: {0}", pEnd.ToString("MM/dd/yyyy @ HH:mm")));
 | 
				
			||||||
			Application.DoEvents();
 | 
								Application.DoEvents();
 | 
				
			||||||
			this.Cursor = Cursors.Default;
 | 
								this.Cursor = Cursors.Default;
 | 
				
			||||||
			MessageBox.Show( "Show Users Completed", "Show Users");
 | 
								MessageBox.Show("Show Users Completed", "Show Users");
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		private void ProcessUpdateROValues(DocVersionInfo dq)
 | 
							private void ProcessUpdateROValues(DocVersionInfo dq)
 | 
				
			||||||
@@ -1121,10 +1220,40 @@ namespace VEPROMS
 | 
				
			|||||||
					CheckChildNodes(e.Node, e.Node.Checked);
 | 
										CheckChildNodes(e.Node, e.Node.Checked);
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
								if (swDeleteAnnotations.Value)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (e.Node.Checked)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										DiselectParentNodes(e.Node.Parent);
 | 
				
			||||||
 | 
										DiselectChildNodes(e.Node.Nodes);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			btnFixLinks.Enabled = AtLeastOneNodeChecked(); // C2017-030 support for Refresh Transitions/Update RO Values
 | 
								btnFixLinks.Enabled = AtLeastOneNodeChecked(); // C2017-030 support for Refresh Transitions/Update RO Values
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							private void DiselectParentNodes(TreeNode parent)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								while (parent != null)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (parent.Checked)
 | 
				
			||||||
 | 
										parent.Checked = false;
 | 
				
			||||||
 | 
									parent = parent.Parent;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							private void DiselectChildNodes(TreeNodeCollection childes)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								foreach (TreeNode oneChild in childes)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (oneChild.Checked)
 | 
				
			||||||
 | 
										oneChild.Checked = false;
 | 
				
			||||||
 | 
									DiselectChildNodes(oneChild.Nodes);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		private void CheckChildNodes(TreeNode treeNode, bool ischecked)
 | 
							private void CheckChildNodes(TreeNode treeNode, bool ischecked)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			foreach (TreeNode tn in treeNode.Nodes)
 | 
								foreach (TreeNode tn in treeNode.Nodes)
 | 
				
			||||||
@@ -1246,6 +1375,25 @@ namespace VEPROMS
 | 
				
			|||||||
			this.Close();
 | 
								this.Close();
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// new Admin Tools user interface for deletes
 | 
				
			||||||
 | 
							private void sideNavItmDelete_Click(object sender, EventArgs e)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								AdminToolType = E_AdminToolType.Delete;
 | 
				
			||||||
 | 
								lblAdmToolProgressType.Text = "";
 | 
				
			||||||
 | 
								setupProgessSteps1();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if (swDeleteFolder.Value)
 | 
				
			||||||
 | 
									ResetDelTV(true);
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
									ResetDelTV(false);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// new Admin Tools user interface for deletes
 | 
				
			||||||
 | 
							//private void sideNavItmDelete_Click_1(object sender, EventArgs e)
 | 
				
			||||||
 | 
							//{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		#region On/Off Swiches
 | 
							#region On/Off Swiches
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// C2017-030 new Admin Tools user interface
 | 
							// C2017-030 new Admin Tools user interface
 | 
				
			||||||
@@ -1254,7 +1402,8 @@ namespace VEPROMS
 | 
				
			|||||||
			Check = 0,
 | 
								Check = 0,
 | 
				
			||||||
			Repair = 1,
 | 
								Repair = 1,
 | 
				
			||||||
			Links = 2,
 | 
								Links = 2,
 | 
				
			||||||
			Users = 3
 | 
								Users = 3,
 | 
				
			||||||
 | 
								Delete = 4
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		private E_AdminToolType AdminToolType = 0;
 | 
							private E_AdminToolType AdminToolType = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1305,6 +1454,11 @@ namespace VEPROMS
 | 
				
			|||||||
					splitContainer3.Panel2Collapsed = true;
 | 
										splitContainer3.Panel2Collapsed = true;
 | 
				
			||||||
					progressSteps1.Visible = false;
 | 
										progressSteps1.Visible = false;
 | 
				
			||||||
					break;
 | 
										break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									case E_AdminToolType.Delete:
 | 
				
			||||||
 | 
										splitContainer3.Panel2Collapsed = true;
 | 
				
			||||||
 | 
										progressSteps1.Visible = false;
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1500,5 +1654,138 @@ namespace VEPROMS
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//C2024-005 Delete Annotations, Delete Folders
 | 
				
			||||||
 | 
							private void swDeleteAnnotations_ValueChanged(object sender, EventArgs e)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								swDeleteFolder.Value = !swDeleteAnnotations.Value;
 | 
				
			||||||
 | 
								if (swDeleteFolder.Value)
 | 
				
			||||||
 | 
									ResetDelTV(true);
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
									ResetDelTV(false);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							private void swDeleteFolder_ValueChanged(object sender, EventArgs e)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								swDeleteAnnotations.Value = !swDeleteFolder.Value;
 | 
				
			||||||
 | 
								if (swDeleteFolder.Value)
 | 
				
			||||||
 | 
									ResetDelTV(true);
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
									ResetDelTV(false);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							private void btnDeleteItems_Click(object sender, EventArgs e)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								//clear
 | 
				
			||||||
 | 
								txtResults.Clear();
 | 
				
			||||||
 | 
								txtProcess.Clear();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if (swDeleteFolder.Value)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									//TODO process deletions of folders
 | 
				
			||||||
 | 
									txtProcess.AppendText("Deleting Folders...");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									//List<ProcedureInfo> pil = new List<ProcedureInfo>();
 | 
				
			||||||
 | 
									//foreach (TreeNode tn in myProcedures.Keys)
 | 
				
			||||||
 | 
									//	if (tn.Checked)
 | 
				
			||||||
 | 
									//		pil.Add(myProcedures[tn]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									////Load Selected Folders
 | 
				
			||||||
 | 
									Dictionary<int, string> folderData = new Dictionary<int, string>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									//List<FolderInfo> Flist = new List<FolderInfo>();
 | 
				
			||||||
 | 
									//foreach (TreeNode tn in myDocVersions.Keys)
 | 
				
			||||||
 | 
									//	if (tn.Checked)
 | 
				
			||||||
 | 
									//		Flist.Add();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									//List<DocVersionInfo> dvil = new List<DocVersionInfo>();
 | 
				
			||||||
 | 
									//foreach (TreeNode tn in myDocVersions.Keys)
 | 
				
			||||||
 | 
									//	if (tn.Checked)
 | 
				
			||||||
 | 
									//		dvil.Add(myDocVersions[tn]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									//foreach (TreeNode tn in myTVdel.Nodes)
 | 
				
			||||||
 | 
									//{
 | 
				
			||||||
 | 
									//	if (tn.Checked)
 | 
				
			||||||
 | 
									//	{
 | 
				
			||||||
 | 
									//		var itemInfo = myProcedures[tn];
 | 
				
			||||||
 | 
									//		folderData.Add(itemInfo.ItemID, itemInfo.DisplayText);
 | 
				
			||||||
 | 
									//	}
 | 
				
			||||||
 | 
									//}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									//ProcessDelete(dvil);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
										// Write progress status
 | 
				
			||||||
 | 
									txtProcess.AppendText("Deleting Annotations...");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										// Create a list of procedures the user selected
 | 
				
			||||||
 | 
									List<ProcedureInfo> pil = new List<ProcedureInfo>();
 | 
				
			||||||
 | 
									foreach (TreeNode tn in myProcedures.Keys)
 | 
				
			||||||
 | 
										if (tn.Checked)
 | 
				
			||||||
 | 
											pil.Add(myProcedures[tn]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										// Create a list of doc versions the user selected
 | 
				
			||||||
 | 
									List<DocVersionInfo> dvil = new List<DocVersionInfo>();
 | 
				
			||||||
 | 
									foreach (TreeNode tn in myDocVersions.Keys)
 | 
				
			||||||
 | 
										if (tn.Checked)
 | 
				
			||||||
 | 
											dvil.Add(myDocVersions[tn]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									frmAnnotationsCleanup frmAnnoDel = new frmAnnotationsCleanup(this, pil, dvil);
 | 
				
			||||||
 | 
									
 | 
				
			||||||
 | 
									frmAnnoDel.ShowDialog();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							private void ProcessDelete(List<DocVersionInfo> foldersToDelete)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								DateTime pStart = DateTime.Now;
 | 
				
			||||||
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
 | 
								txtProcess.AppendText(pStart.ToString("MM/dd/yyyy @ HH:mm"));
 | 
				
			||||||
 | 
								txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								foreach (var kvp in foldersToDelete)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									int itemID = (int)kvp.ItemID;
 | 
				
			||||||
 | 
									string folderName = kvp.Name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									// Perform the deletion operation
 | 
				
			||||||
 | 
									// Assume DeleteFolderByID is a method that deletes the folder by its ItemID
 | 
				
			||||||
 | 
									bool deletionSuccessful = DeleteFolderByID(itemID);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									// Update txtProcess with the progress
 | 
				
			||||||
 | 
									if (deletionSuccessful)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										txtProcess.AppendText($"Successfully deleted folder: {folderName} (ID: {itemID})");
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									else
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										txtProcess.AppendText($"Failed to delete folder: {folderName} (ID: {itemID})");
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									txtProcess.AppendText(Environment.NewLine);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							// Example deletion method
 | 
				
			||||||
 | 
							private bool DeleteFolderByID(int itemID)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								// Implement your folder deletion logic here
 | 
				
			||||||
 | 
								// Return true if deletion was successful, false otherwise
 | 
				
			||||||
 | 
								return true; // Placeholder
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							public List<ProcedureInfo> RetrieveChkAnnotations()
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								List<ProcedureInfo> pil = new List<ProcedureInfo>();
 | 
				
			||||||
 | 
								foreach (TreeNode tn in myProcedures.Keys)
 | 
				
			||||||
 | 
									if (tn.Checked)
 | 
				
			||||||
 | 
										pil.Add(myProcedures[tn]);
 | 
				
			||||||
 | 
								return pil;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -117,6 +117,44 @@
 | 
				
			|||||||
  <resheader name="writer">
 | 
					  <resheader name="writer">
 | 
				
			||||||
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
 | 
					    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
 | 
				
			||||||
  </resheader>
 | 
					  </resheader>
 | 
				
			||||||
 | 
					  <metadata name="superTooltip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
 | 
				
			||||||
 | 
					    <value>17, 17</value>
 | 
				
			||||||
 | 
					  </metadata>
 | 
				
			||||||
 | 
					  <data name="swDeleteFolder.SuperTooltip" xml:space="preserve">
 | 
				
			||||||
 | 
					    <value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Be sure a current backup of the database exists prior performing this function.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It is recommended that this be done during off hours.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</value>
 | 
				
			||||||
 | 
					  </data>
 | 
				
			||||||
 | 
					  <data name="labelX13.SuperTooltip" xml:space="preserve">
 | 
				
			||||||
 | 
					    <value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Be sure a current backup of the database exists prior performing this function.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It is recommended that this be done during off hours.
 | 
				
			||||||
 | 
					</value>
 | 
				
			||||||
 | 
					  </data>
 | 
				
			||||||
 | 
					  <data name="swDeleteAnnotations.SuperTooltip" xml:space="preserve">
 | 
				
			||||||
 | 
					    <value>This function will refresh transitions in all procedures selected below, whether they were selected individually or as a group via a procedure set.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Be sure a current backup of the database exists prior to running this function.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If more than one procedure is selected, it is recommended that this be performed during off hours.</value>
 | 
				
			||||||
 | 
					  </data>
 | 
				
			||||||
 | 
					  <data name="labelX14.SuperTooltip" xml:space="preserve">
 | 
				
			||||||
 | 
					    <value>This function will refresh transitions in all procedures selected below, whether they were selected individually or as a group via a procedure set.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Be sure a current backup of the database exists prior to running this function.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If more than one procedure is selected, it is recommended that this be performed during off hours.</value>
 | 
				
			||||||
 | 
					  </data>
 | 
				
			||||||
  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
 | 
					  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
 | 
				
			||||||
  <data name="warningBox3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
 | 
					  <data name="warningBox3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
 | 
				
			||||||
    <value>
 | 
					    <value>
 | 
				
			||||||
@@ -135,9 +173,6 @@
 | 
				
			|||||||
        zJwL4b/EAAAAAElFTkSuQmCC
 | 
					        zJwL4b/EAAAAAElFTkSuQmCC
 | 
				
			||||||
</value>
 | 
					</value>
 | 
				
			||||||
  </data>
 | 
					  </data>
 | 
				
			||||||
  <metadata name="superTooltip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
 | 
					 | 
				
			||||||
    <value>17, 17</value>
 | 
					 | 
				
			||||||
  </metadata>
 | 
					 | 
				
			||||||
  <data name="swCkObsoleteROData.SuperTooltip" xml:space="preserve">
 | 
					  <data name="swCkObsoleteROData.SuperTooltip" xml:space="preserve">
 | 
				
			||||||
    <value>Referenced Objects databases are associated with a procedure set (such as Working Draft). 
 | 
					    <value>Referenced Objects databases are associated with a procedure set (such as Working Draft). 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -184,91 +219,6 @@ This tool may take an extended period of time to execute.
 | 
				
			|||||||
Should an item become orphaned (disconnected) from the rest of the data, it will no longer be accessible.  This tool detects any orphaned items in the database.
 | 
					Should an item become orphaned (disconnected) from the rest of the data, it will no longer be accessible.  This tool detects any orphaned items in the database.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This tool may take an extended period of time to execute.
 | 
					This tool may take an extended period of time to execute.
 | 
				
			||||||
</value>
 | 
					 | 
				
			||||||
  </data>
 | 
					 | 
				
			||||||
  <data name="swCheckROLinks.SuperTooltip" xml:space="preserve">
 | 
					 | 
				
			||||||
    <value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Be sure a current backup of the database exists prior performing this function.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
It is recommended that this be done during off hours.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</value>
 | 
					 | 
				
			||||||
  </data>
 | 
					 | 
				
			||||||
  <data name="labelX12.SuperTooltip" xml:space="preserve">
 | 
					 | 
				
			||||||
    <value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Be sure a current backup of the database exists prior performing this function.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
It is recommended that this be done during off hours.
 | 
					 | 
				
			||||||
</value>
 | 
					 | 
				
			||||||
  </data>
 | 
					 | 
				
			||||||
  <data name="warningBox5.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
 | 
					 | 
				
			||||||
    <value>
 | 
					 | 
				
			||||||
        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
 | 
					 | 
				
			||||||
        k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
 | 
					 | 
				
			||||||
        FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
 | 
					 | 
				
			||||||
        Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
 | 
					 | 
				
			||||||
        8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
 | 
					 | 
				
			||||||
        xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
 | 
					 | 
				
			||||||
        KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
 | 
					 | 
				
			||||||
        jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
 | 
					 | 
				
			||||||
        kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
 | 
					 | 
				
			||||||
        2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
 | 
					 | 
				
			||||||
        RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
 | 
					 | 
				
			||||||
        oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
 | 
					 | 
				
			||||||
        zJwL4b/EAAAAAElFTkSuQmCC
 | 
					 | 
				
			||||||
</value>
 | 
					 | 
				
			||||||
  </data>
 | 
					 | 
				
			||||||
  <data name="swUpdateROVals.SuperTooltip" xml:space="preserve">
 | 
					 | 
				
			||||||
    <value>This allows the user to update referenced objects values for multiple working drafts in a batch mode.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Be sure a current backup of the database exists prior performing this function.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
It is recommended that this be done during off hours.
 | 
					 | 
				
			||||||
</value>
 | 
					 | 
				
			||||||
  </data>
 | 
					 | 
				
			||||||
  <data name="swRefreshTrans.SuperTooltip" xml:space="preserve">
 | 
					 | 
				
			||||||
    <value>This function will refresh transitions in all procedures selected below, whether they were selected individually or as a group via a procedure set.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Be sure a current backup of the database exists prior to running this function.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
If more than one procedure is selected, it is recommended that this be performed during off hours.</value>
 | 
					 | 
				
			||||||
  </data>
 | 
					 | 
				
			||||||
  <data name="labelX11.SuperTooltip" xml:space="preserve">
 | 
					 | 
				
			||||||
    <value>This allows the user to update referenced objects values for multiple working drafts in a batch mode.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Be sure a current backup of the database exists prior performing this function.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
It is recommended that this be done during off hours.
 | 
					 | 
				
			||||||
</value>
 | 
					 | 
				
			||||||
  </data>
 | 
					 | 
				
			||||||
  <data name="labelX6.SuperTooltip" xml:space="preserve">
 | 
					 | 
				
			||||||
    <value>This function will refresh transitions in all procedures selected below, whether they were selected individually or as a group via a procedure set.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Be sure a current backup of the database exists prior to running this function.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
If more than one procedure is selected, it is recommended that this be performed during off hours.</value>
 | 
					 | 
				
			||||||
  </data>
 | 
					 | 
				
			||||||
  <data name="warningBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
 | 
					 | 
				
			||||||
    <value>
 | 
					 | 
				
			||||||
        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
 | 
					 | 
				
			||||||
        k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
 | 
					 | 
				
			||||||
        FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
 | 
					 | 
				
			||||||
        Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
 | 
					 | 
				
			||||||
        8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
 | 
					 | 
				
			||||||
        xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
 | 
					 | 
				
			||||||
        KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
 | 
					 | 
				
			||||||
        jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
 | 
					 | 
				
			||||||
        kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
 | 
					 | 
				
			||||||
        2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
 | 
					 | 
				
			||||||
        RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
 | 
					 | 
				
			||||||
        oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
 | 
					 | 
				
			||||||
        zJwL4b/EAAAAAElFTkSuQmCC
 | 
					 | 
				
			||||||
</value>
 | 
					</value>
 | 
				
			||||||
  </data>
 | 
					  </data>
 | 
				
			||||||
  <data name="swRefreshTblsForSrch.SuperTooltip" xml:space="preserve">
 | 
					  <data name="swRefreshTblsForSrch.SuperTooltip" xml:space="preserve">
 | 
				
			||||||
@@ -365,9 +315,94 @@ Should an item become orphaned (disconnected) from the rest of the data, it will
 | 
				
			|||||||
    <value>Everything in PROMS is inter-related.  A working draft knows what is its first procedure and a procedure knows what is its first step.  Likewise, a procedure knows what procedure is before it and after it.
 | 
					    <value>Everything in PROMS is inter-related.  A working draft knows what is its first procedure and a procedure knows what is its first step.  Likewise, a procedure knows what procedure is before it and after it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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.
 | 
					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.
 | 
				
			||||||
 | 
					</value>
 | 
				
			||||||
 | 
					  </data>
 | 
				
			||||||
 | 
					  <data name="swCheckROLinks.SuperTooltip" xml:space="preserve">
 | 
				
			||||||
 | 
					    <value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Be sure a current backup of the database exists prior performing this function.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It is recommended that this be done during off hours.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</value>
 | 
				
			||||||
 | 
					  </data>
 | 
				
			||||||
 | 
					  <data name="labelX12.SuperTooltip" xml:space="preserve">
 | 
				
			||||||
 | 
					    <value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Be sure a current backup of the database exists prior performing this function.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It is recommended that this be done during off hours.
 | 
				
			||||||
 | 
					</value>
 | 
				
			||||||
 | 
					  </data>
 | 
				
			||||||
 | 
					  <data name="warningBox5.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
 | 
				
			||||||
 | 
					    <value>
 | 
				
			||||||
 | 
					        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
 | 
				
			||||||
 | 
					        k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
 | 
				
			||||||
 | 
					        FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
 | 
				
			||||||
 | 
					        Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
 | 
				
			||||||
 | 
					        8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
 | 
				
			||||||
 | 
					        xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
 | 
				
			||||||
 | 
					        KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
 | 
				
			||||||
 | 
					        jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
 | 
				
			||||||
 | 
					        kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
 | 
				
			||||||
 | 
					        2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
 | 
				
			||||||
 | 
					        RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
 | 
				
			||||||
 | 
					        oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
 | 
				
			||||||
 | 
					        zJwL4b/EAAAAAElFTkSuQmCC
 | 
				
			||||||
 | 
					</value>
 | 
				
			||||||
 | 
					  </data>
 | 
				
			||||||
 | 
					  <data name="swUpdateROVals.SuperTooltip" xml:space="preserve">
 | 
				
			||||||
 | 
					    <value>This allows the user to update referenced objects values for multiple working drafts in a batch mode.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Be sure a current backup of the database exists prior performing this function.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It is recommended that this be done during off hours.
 | 
				
			||||||
 | 
					</value>
 | 
				
			||||||
 | 
					  </data>
 | 
				
			||||||
 | 
					  <data name="swRefreshTrans.SuperTooltip" xml:space="preserve">
 | 
				
			||||||
 | 
					    <value>This function will refresh transitions in all procedures selected below, whether they were selected individually or as a group via a procedure set.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Be sure a current backup of the database exists prior to running this function.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If more than one procedure is selected, it is recommended that this be performed during off hours.</value>
 | 
				
			||||||
 | 
					  </data>
 | 
				
			||||||
 | 
					  <data name="labelX11.SuperTooltip" xml:space="preserve">
 | 
				
			||||||
 | 
					    <value>This allows the user to update referenced objects values for multiple working drafts in a batch mode.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Be sure a current backup of the database exists prior performing this function.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It is recommended that this be done during off hours.
 | 
				
			||||||
 | 
					</value>
 | 
				
			||||||
 | 
					  </data>
 | 
				
			||||||
 | 
					  <data name="labelX6.SuperTooltip" xml:space="preserve">
 | 
				
			||||||
 | 
					    <value>This function will refresh transitions in all procedures selected below, whether they were selected individually or as a group via a procedure set.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Be sure a current backup of the database exists prior to running this function.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If more than one procedure is selected, it is recommended that this be performed during off hours.</value>
 | 
				
			||||||
 | 
					  </data>
 | 
				
			||||||
 | 
					  <data name="warningBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
 | 
				
			||||||
 | 
					    <value>
 | 
				
			||||||
 | 
					        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
 | 
				
			||||||
 | 
					        k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
 | 
				
			||||||
 | 
					        FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
 | 
				
			||||||
 | 
					        Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
 | 
				
			||||||
 | 
					        8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
 | 
				
			||||||
 | 
					        xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
 | 
				
			||||||
 | 
					        KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
 | 
				
			||||||
 | 
					        jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
 | 
				
			||||||
 | 
					        kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
 | 
				
			||||||
 | 
					        2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
 | 
				
			||||||
 | 
					        RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
 | 
				
			||||||
 | 
					        oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
 | 
				
			||||||
 | 
					        zJwL4b/EAAAAAElFTkSuQmCC
 | 
				
			||||||
</value>
 | 
					</value>
 | 
				
			||||||
  </data>
 | 
					  </data>
 | 
				
			||||||
  <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
 | 
					  <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
 | 
				
			||||||
    <value>38</value>
 | 
					    <value>46</value>
 | 
				
			||||||
  </metadata>
 | 
					  </metadata>
 | 
				
			||||||
</root>
 | 
					</root>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -214,7 +214,7 @@ namespace VEPROMS
 | 
				
			|||||||
			this.btnSendErrorLog,
 | 
								this.btnSendErrorLog,
 | 
				
			||||||
			this.btnShowErrFld,
 | 
								this.btnShowErrFld,
 | 
				
			||||||
			this.btnShowPrtFld,
 | 
								this.btnShowPrtFld,
 | 
				
			||||||
			this.btnHelpAbout}); ;
 | 
								this.btnHelpAbout});
 | 
				
			||||||
			this.btnHelp.Text = "Help";
 | 
								this.btnHelp.Text = "Help";
 | 
				
			||||||
			// 
 | 
								// 
 | 
				
			||||||
			// btnHelpManual
 | 
								// btnHelpManual
 | 
				
			||||||
@@ -1763,3 +1763,4 @@ namespace VEPROMS
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -225,6 +225,86 @@ namespace VEPROMS.CSLA.Library
 | 
				
			|||||||
				throw new DbCslaException("Error on Annotation.Delete", ex);
 | 
									throw new DbCslaException("Error on Annotation.Delete", ex);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							public static void DeleteAnnotationProcByType(int typID, string procList)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (!CanDeleteObject())
 | 
				
			||||||
 | 
									throw new System.Security.SecurityException("User not authorized to remove a Annotation");
 | 
				
			||||||
 | 
								try
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									DataPortal.Delete(new DeleteAnnotationProcByTypeCriteria(typID, procList));
 | 
				
			||||||
 | 
									AnnotationInfo.StaticOnInfoChanged();
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								catch (Exception ex)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									System.Data.SqlClient.SqlException exSQL = SqlException(ex);
 | 
				
			||||||
 | 
									if (exSQL != null && exSQL.Message.Contains("###Cannot Delete Item###"))
 | 
				
			||||||
 | 
										throw exSQL;
 | 
				
			||||||
 | 
									Console.WriteLine("AnnotationExt: Stacktrace = {0}", ex.StackTrace);
 | 
				
			||||||
 | 
									throw new DbCslaException("Error on Annotation.Delete", ex);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							public static void DeleteAnnotationDocvByType(int typID, string versionID)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (!CanDeleteObject())
 | 
				
			||||||
 | 
									throw new System.Security.SecurityException("User not authorized to remove a Annotation");
 | 
				
			||||||
 | 
								try
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									DataPortal.Delete(new DeleteAnnotationDocvByTypeCriteria(typID, versionID));
 | 
				
			||||||
 | 
									AnnotationInfo.StaticOnInfoChanged();
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								catch (Exception ex)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									System.Data.SqlClient.SqlException exSQL = SqlException(ex);
 | 
				
			||||||
 | 
									if (exSQL != null && exSQL.Message.Contains("###Cannot Delete Item###"))
 | 
				
			||||||
 | 
										throw exSQL;
 | 
				
			||||||
 | 
									Console.WriteLine("AnnotationExt: Stacktrace = {0}", ex.StackTrace);
 | 
				
			||||||
 | 
									throw new DbCslaException("Error on Annotation.Delete", ex);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							public static int getAnnotationProcCnt(int typID, string procList)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (!CanGetObject())
 | 
				
			||||||
 | 
									throw new System.Security.SecurityException("User not authorized to remove a Annotation");
 | 
				
			||||||
 | 
								try
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									Annotation ProcCnt  = DataPortal.Fetch<Annotation>(new getAnnotationCountProcCriteria(typID, procList));
 | 
				
			||||||
 | 
									AnnotationInfo.StaticOnInfoChanged();
 | 
				
			||||||
 | 
									return Annotation.ProcCnt;
 | 
				
			||||||
 | 
									//return Int32.Parse(ProcCnt);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								catch (Exception ex)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									System.Data.SqlClient.SqlException exSQL = SqlException(ex);
 | 
				
			||||||
 | 
									if (exSQL != null && exSQL.Message.Contains("###Cannot retrieve Item###"))
 | 
				
			||||||
 | 
										throw exSQL;
 | 
				
			||||||
 | 
									Console.WriteLine("AnnotationExt: Stacktrace = {0}", ex.StackTrace);
 | 
				
			||||||
 | 
									throw new DbCslaException("Error on getAnnotationCountProcCriteria", ex);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							public static int getAnnotationCountDocv(int typID, string procList)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (!CanGetObject())
 | 
				
			||||||
 | 
									throw new System.Security.SecurityException("User not authorized to remove a Annotation");
 | 
				
			||||||
 | 
								try
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									Annotation DocvCnt = DataPortal.Fetch<Annotation>(new getAnnotationCountDocvCriteria(typID, procList));
 | 
				
			||||||
 | 
									AnnotationInfo.StaticOnInfoChanged();
 | 
				
			||||||
 | 
									return Annotation.DocvCnt;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								catch (Exception ex)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									System.Data.SqlClient.SqlException exSQL = SqlException(ex);
 | 
				
			||||||
 | 
									if (exSQL != null && exSQL.Message.Contains("###Cannot retrieve Item###"))
 | 
				
			||||||
 | 
										throw exSQL;
 | 
				
			||||||
 | 
									Console.WriteLine("AnnotationExt: Stacktrace = {0}", ex.StackTrace);
 | 
				
			||||||
 | 
									throw new DbCslaException("Error on getAnnotationCountDocvCriteria", ex);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		private static System.Data.SqlClient.SqlException SqlException(Exception ex)
 | 
							private static System.Data.SqlClient.SqlException SqlException(Exception ex)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			Type sqlExType = typeof(System.Data.SqlClient.SqlException);
 | 
								Type sqlExType = typeof(System.Data.SqlClient.SqlException);
 | 
				
			||||||
@@ -280,12 +360,209 @@ namespace VEPROMS.CSLA.Library
 | 
				
			|||||||
				throw new DbCslaException("Item.DataPortal_Delete", ex);
 | 
									throw new DbCslaException("Item.DataPortal_Delete", ex);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							[Serializable()]
 | 
				
			||||||
 | 
							protected class DeleteAnnotationProcByTypeCriteria
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								private int _typeID;
 | 
				
			||||||
 | 
								public int TypeID
 | 
				
			||||||
 | 
								{ get { return _typeID; } }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								private string _procList;
 | 
				
			||||||
 | 
								public string ProcList
 | 
				
			||||||
 | 
								{ get { return _procList; } }
 | 
				
			||||||
 | 
								public DeleteAnnotationProcByTypeCriteria(int typeID, string procList)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									_typeID = typeID;
 | 
				
			||||||
 | 
									_procList = procList;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							[Transactional(TransactionalTypes.TransactionScope)]
 | 
				
			||||||
 | 
							private void DataPortal_Delete(DeleteAnnotationProcByTypeCriteria criteria)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Item.DataPortal_Delete", GetHashCode());
 | 
				
			||||||
 | 
								try
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									using (SqlConnection cn = Database.VEPROMS_SqlConnection)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										using (SqlCommand cm = cn.CreateCommand())
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											cm.CommandType = CommandType.StoredProcedure;
 | 
				
			||||||
 | 
											cm.CommandTimeout = Database.SQLTimeout;
 | 
				
			||||||
 | 
											cm.CommandText = "deleteAnnotationsProcByType";
 | 
				
			||||||
 | 
											cm.Parameters.AddWithValue("@typeid", criteria.TypeID);
 | 
				
			||||||
 | 
											cm.Parameters.AddWithValue("@procList", criteria.ProcList);
 | 
				
			||||||
 | 
											cm.ExecuteNonQuery();
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								catch (Exception ex)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (_MyLog.IsErrorEnabled) _MyLog.Error("Item.DataPortal_Delete", ex);
 | 
				
			||||||
 | 
									_ErrorMessage = ex.Message;
 | 
				
			||||||
 | 
									throw new DbCslaException("Item.DataPortal_Delete Annotations by group", ex);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							[Serializable()]
 | 
				
			||||||
 | 
							protected class DeleteAnnotationDocvByTypeCriteria
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								private int _typeID;
 | 
				
			||||||
 | 
								public int TypeID
 | 
				
			||||||
 | 
								{ get { return _typeID; } }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								private string _versionID;
 | 
				
			||||||
 | 
								public string VersionID
 | 
				
			||||||
 | 
								{ get { return _versionID; } }
 | 
				
			||||||
 | 
								public DeleteAnnotationDocvByTypeCriteria(int typeID, string versionID)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									_typeID = typeID;
 | 
				
			||||||
 | 
									_versionID = versionID;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							[Transactional(TransactionalTypes.TransactionScope)]
 | 
				
			||||||
 | 
							private void DataPortal_Delete(DeleteAnnotationDocvByTypeCriteria criteria)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Delete Annotations by Type Docv", GetHashCode());
 | 
				
			||||||
 | 
								try
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									using (SqlConnection cn = Database.VEPROMS_SqlConnection)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										using (SqlCommand cm = cn.CreateCommand())
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											cm.CommandType = CommandType.StoredProcedure;
 | 
				
			||||||
 | 
											cm.CommandTimeout = Database.SQLTimeout;
 | 
				
			||||||
 | 
											cm.CommandText = "deleteAnnotationsDocvByType";
 | 
				
			||||||
 | 
											cm.Parameters.AddWithValue("@typeid", criteria.TypeID);
 | 
				
			||||||
 | 
											cm.Parameters.AddWithValue("@docvList", criteria.VersionID);
 | 
				
			||||||
 | 
											cm.ExecuteNonQuery();
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								catch (Exception ex)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (_MyLog.IsErrorEnabled) _MyLog.Error("Item.DataPortal_Delete", ex);
 | 
				
			||||||
 | 
									_ErrorMessage = ex.Message;
 | 
				
			||||||
 | 
									throw new DbCslaException("Item.DataPortal_Delete Annotations by type Docv", ex);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							private static int _procCnt;
 | 
				
			||||||
 | 
							public static int ProcCnt
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								get { return _procCnt; }
 | 
				
			||||||
 | 
								set { _procCnt = value; }
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							[Serializable()]
 | 
				
			||||||
 | 
							protected class getAnnotationCountProcCriteria
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								private int _procCnt;
 | 
				
			||||||
 | 
								public int ProcCnt
 | 
				
			||||||
 | 
								{ get { return _procCnt; }
 | 
				
			||||||
 | 
								  set { _procCnt = value; }
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								private int _typeID;
 | 
				
			||||||
 | 
								public int TypeID
 | 
				
			||||||
 | 
								{ get { return _typeID; } }
 | 
				
			||||||
 | 
								private string _procList;
 | 
				
			||||||
 | 
								public string ProcList
 | 
				
			||||||
 | 
								{ get { return _procList; } }
 | 
				
			||||||
 | 
								public getAnnotationCountProcCriteria(int typeID, string procList, int procCnt = 0)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									_typeID = typeID;
 | 
				
			||||||
 | 
									_procList = procList;
 | 
				
			||||||
 | 
									_procCnt = procCnt;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							[Transactional(TransactionalTypes.TransactionScope)]
 | 
				
			||||||
 | 
							private getAnnotationCountProcCriteria DataPortal_Fetch(getAnnotationCountProcCriteria criteria)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Item.DataPortal_Fetch", GetHashCode());
 | 
				
			||||||
 | 
								try
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									//int ProcCnt;
 | 
				
			||||||
 | 
									using (SqlConnection cn = Database.VEPROMS_SqlConnection)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										using (SqlCommand cm = cn.CreateCommand())
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											cm.CommandType = CommandType.StoredProcedure;
 | 
				
			||||||
 | 
											cm.CommandTimeout = Database.SQLTimeout;
 | 
				
			||||||
 | 
											cm.CommandText = "getAnnotationProcCount";						
 | 
				
			||||||
 | 
											cm.Parameters.AddWithValue("@procList", criteria.ProcList);
 | 
				
			||||||
 | 
											cm.Parameters.AddWithValue("@typeid", criteria.TypeID);
 | 
				
			||||||
 | 
											Annotation.ProcCnt = (int)cm.ExecuteScalar();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									return criteria; //_procCnt.ToString();
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								catch (Exception ex)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (_MyLog.IsErrorEnabled) _MyLog.Error("Annotation.GetAnnotationProcCnt", ex);
 | 
				
			||||||
 | 
									_ErrorMessage = ex.Message;
 | 
				
			||||||
 | 
									throw new DbCslaException("Annotation.GetAnnotationProcCnt by group", ex);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							private static int _docvCnt;
 | 
				
			||||||
 | 
							public static int DocvCnt
 | 
				
			||||||
 | 
							{ get { return _docvCnt; } 
 | 
				
			||||||
 | 
							set { _docvCnt = value; }
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							[Serializable()]
 | 
				
			||||||
 | 
							protected class getAnnotationCountDocvCriteria
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								private int _docvCnt;
 | 
				
			||||||
 | 
								public int DocvCnt
 | 
				
			||||||
 | 
								{ get { return _docvCnt; }
 | 
				
			||||||
 | 
								  set { _docvCnt = value; }
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								private int _TypeID;
 | 
				
			||||||
 | 
								public int TypeID
 | 
				
			||||||
 | 
								{ get { return _TypeID; } }
 | 
				
			||||||
 | 
								private string _docvList;
 | 
				
			||||||
 | 
								public string DocvList
 | 
				
			||||||
 | 
								{ get { return _docvList; } }
 | 
				
			||||||
 | 
								public getAnnotationCountDocvCriteria(int typeID, string docvList, int docvCnt = 0)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									_TypeID = typeID;
 | 
				
			||||||
 | 
									_docvList = docvList;
 | 
				
			||||||
 | 
									_docvCnt = docvCnt;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							[Transactional(TransactionalTypes.TransactionScope)]
 | 
				
			||||||
 | 
							private getAnnotationCountDocvCriteria DataPortal_Fetch(getAnnotationCountDocvCriteria criteria)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Annotation.DataPortal_Fetch", GetHashCode());
 | 
				
			||||||
 | 
								try
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									//int ProcCnt;
 | 
				
			||||||
 | 
									using (SqlConnection cn = Database.VEPROMS_SqlConnection)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										using (SqlCommand cm = cn.CreateCommand())
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											cm.CommandType = CommandType.StoredProcedure;
 | 
				
			||||||
 | 
											cm.CommandTimeout = Database.SQLTimeout;
 | 
				
			||||||
 | 
											cm.CommandText = "getAnnotationDocvCount";
 | 
				
			||||||
 | 
											cm.Parameters.AddWithValue("@typeid", criteria.TypeID);
 | 
				
			||||||
 | 
											cm.Parameters.AddWithValue("@DocvList", criteria.DocvList);
 | 
				
			||||||
 | 
											Annotation.DocvCnt = (int)cm.ExecuteScalar();
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										return criteria;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								catch (Exception ex)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (_MyLog.IsErrorEnabled) _MyLog.Error("Item.DataPortal_Delete", ex);
 | 
				
			||||||
 | 
									_ErrorMessage = ex.Message;
 | 
				
			||||||
 | 
									throw new DbCslaException("Item.DataPortal_Delete Annotations by group", ex);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	//public partial class AnnotationTypeAnnotations
 | 
					 | 
				
			||||||
	//{
 | 
					 | 
				
			||||||
	//   public static int GetAnnotationID()
 | 
					 | 
				
			||||||
	//   {
 | 
					 | 
				
			||||||
	//      return AnnotationTypeAnnotat
 | 
					 | 
				
			||||||
	//   }
 | 
					 | 
				
			||||||
	//}
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user