From a3ce679ce6e52286c8b4ee7b0c24c709d964aa61 Mon Sep 17 00:00:00 2001 From: Sarathlal Sarangadharan Date: Wed, 5 Nov 2025 13:29:48 +0000 Subject: [PATCH] TD-6148: Neew stored procedures and DB types for ELFH-LH data sync --- .../LearningHub.Nhs.Database.sqlproj | 43 ++ .../Adf/AdfMergeEmailTemplate.sql | 59 ++ .../Adf/AdfMergeEmploymentReferenceType.sql | 39 ++ .../Stored Procedures/Adf/AdfMergeHubUser.sql | 72 ++ .../Adf/AdfMergeMergeUser.sql | 47 ++ .../Adf/AdfMergeUserAdminLocation.sql | 50 ++ .../Adf/AdfMergeUserAttribute.sql | 62 ++ .../Adf/AdfMergeUserEmploymentReference.sql | 51 ++ .../AdfMergeUserEmploymentResponsibility.sql | 45 ++ .../AdfMergeUserGroupTypeInputValidation.sql | 67 ++ .../Adf/AdfMergeUserHistory.sql | 49 ++ .../Adf/AdfMergeUserHistoryAttribute.sql | 62 ++ .../Adf/AdfMergeUserHistoryType.sql | 35 + .../AdfMergeUserPasswordValidationToke.sql | 60 ++ .../Adf/AdfMergeUserProfileData.sql | 68 ++ .../Adf/AdfMergeUserReportingUser.sql | 52 ++ .../Adf/AdfMergeUserRoleUpgrade.sql | 64 ++ .../Adf/AdfMergeattribute.sql | 633 ++++++++++++++++++ .../Adf/AdfMergeattributeType.sql | 45 ++ .../Stored Procedures/Adf/AdfMergecountry.sql | 62 ++ .../Stored Procedures/Adf/AdfMergedeanery.sql | 47 ++ .../Adf/AdfMergeemailTemplateType.sql | 47 ++ .../Adf/AdfMergegdcRegister.sql | 98 +++ .../Stored Procedures/Adf/AdfMergegmclrmp.sql | 56 ++ .../Stored Procedures/Adf/AdfMergegrade.sql | 47 ++ .../Adf/AdfMergeipCountryLookup.sql | 43 ++ .../Stored Procedures/Adf/AdfMergejobRole.sql | 53 ++ .../Adf/AdfMergelocation.sql | 142 ++++ .../Adf/AdfMergelocationType.sql | 55 ++ .../Adf/AdfMergeloginWizardRule.sql | 60 ++ .../Adf/AdfMergeloginWizardStage.sql | 46 ++ .../Adf/AdfMergeloginWizardStageActivity.sql | 43 ++ .../Adf/AdfMergemedicalCouncil.sql | 50 ++ .../Stored Procedures/Adf/AdfMergeregion.sql | 47 ++ .../Stored Procedures/Adf/AdfMergeschool.sql | 53 ++ .../Adf/AdfMergespecialty.sql | 47 ++ .../Adf/AdfMergestaffGroup.sql | 50 ++ .../Adf/AdfMergesystemSetting.sql | 56 ++ .../Adf/AdfMergetenantSmtp.sql | 68 ++ .../Stored Procedures/Adf/AdfMergetenants.sql | 86 +++ .../Adf/AdfMergetenantsUrl.sql | 55 ++ .../Adf/AdfMergetermsAndConditions.sql | 64 ++ .../Adf/AdfMergeuserEmployment.sql | 77 +++ .../Adf/AdfMergeuserTermsAndConditions.sql | 54 ++ 44 files changed, 3109 insertions(+) create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeEmailTemplate.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeEmploymentReferenceType.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeHubUser.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeMergeUser.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserAdminLocation.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserAttribute.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserEmploymentReference.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserEmploymentResponsibility.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserGroupTypeInputValidation.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserHistory.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserHistoryAttribute.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserHistoryType.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserPasswordValidationToke.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserProfileData.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserReportingUser.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserRoleUpgrade.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeattribute.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeattributeType.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergecountry.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergedeanery.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeemailTemplateType.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergegdcRegister.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergegmclrmp.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergegrade.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeipCountryLookup.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergejobRole.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergelocation.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergelocationType.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeloginWizardRule.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeloginWizardStage.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeloginWizardStageActivity.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergemedicalCouncil.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeregion.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeschool.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergespecialty.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergestaffGroup.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergesystemSetting.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergetenantSmtp.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergetenants.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergetenantsUrl.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergetermsAndConditions.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeuserEmployment.sql create mode 100644 WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeuserTermsAndConditions.sql diff --git a/WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.sqlproj b/WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.sqlproj index ee803a745..3174d2cdb 100644 --- a/WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.sqlproj +++ b/WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.sqlproj @@ -644,6 +644,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeEmailTemplate.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeEmailTemplate.sql new file mode 100644 index 000000000..92f822c7f --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeEmailTemplate.sql @@ -0,0 +1,59 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeEmailTemplate] + @EmailTemplateList [dbo].[EmailTemplate] READONLY +AS +BEGIN + SET NOCOUNT ON; + SET IDENTITY_INSERT [elfh].[emailTemplateTBL] ON; + MERGE [elfh].[emailTemplateTBL] AS TARGET + USING @EmailTemplateList AS SOURCE + ON TARGET.[emailTemplateId] = SOURCE.[emailTemplateId] + + WHEN MATCHED THEN + UPDATE SET + TARGET.[emailTemplateTypeId] = SOURCE.[emailTemplateTypeId], + TARGET.[programmeComponentId] = SOURCE.[programmeComponentId], + TARGET.[title] = SOURCE.[title], + TARGET.[subject] = SOURCE.[subject], + TARGET.[body] = SOURCE.[body], + TARGET.[deleted] = SOURCE.[deleted], + TARGET.[amendUserID] = SOURCE.[amendUserID], + TARGET.[amendDate] = SOURCE.[amendDate], + TARGET.[tenantId] = SOURCE.[tenantId] + + WHEN NOT MATCHED BY TARGET THEN + INSERT ( + [emailTemplateId], + [emailTemplateTypeId], + [programmeComponentId], + [title], + [subject], + [body], + [deleted], + [amendUserID], + [amendDate], + [tenantId] + ) + VALUES ( + SOURCE.[emailTemplateId], + SOURCE.[emailTemplateTypeId], + SOURCE.[programmeComponentId], + SOURCE.[title], + SOURCE.[subject], + SOURCE.[body], + SOURCE.[deleted], + SOURCE.[amendUserID], + SOURCE.[amendDate], + SOURCE.[tenantId] + ); + SET IDENTITY_INSERT [elfh].[emailTemplateTBL] OFF; +END; +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeEmploymentReferenceType.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeEmploymentReferenceType.sql new file mode 100644 index 000000000..03816a823 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeEmploymentReferenceType.sql @@ -0,0 +1,39 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeEmploymentReferenceType] + @EmploymentReferenceType dbo.EmploymentReferenceType READONLY +AS +BEGIN + SET NOCOUNT ON; + + + MERGE [ELFH].[employmentReferenceTypeTBL] AS target + USING @EmploymentReferenceType AS source + ON target.[EmploymentReferenceTypeId] = source.[EmploymentReferenceTypeId] + + WHEN MATCHED THEN + UPDATE SET + target.[Title] = source.[Title], + target.[RefAccess] = source.[RefAccess] + + WHEN NOT MATCHED BY TARGET THEN + INSERT ( + [EmploymentReferenceTypeId], + [Title], + [RefAccess] + ) + VALUES ( + source.[EmploymentReferenceTypeId], + source.[Title], + source.[RefAccess] + ); + +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeHubUser.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeHubUser.sql new file mode 100644 index 000000000..eeb1e5df8 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeHubUser.sql @@ -0,0 +1,72 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeHubUser] + @UserList [dbo].[UserType_Hub] READONLY +AS +BEGIN + SET NOCOUNT ON; + + ALTER TABLE [hub].[user] NOCHECK CONSTRAINT FK_userTBL_userEmploymentTBL; + ALTER TABLE [elfh].[userEmploymentTBL] NOCHECK CONSTRAINT FK_userEmploymentTBL_userTBL; + ALTER TABLE [hub].[User] NOCHECK CONSTRAINT ALL; + + MERGE [hub].[User] AS target + USING @UserList AS source + ON target.[Id] = source.[Id] + WHEN MATCHED THEN + UPDATE SET + target.[UserName] = source.[UserName], + target.[countryId] = source.[countryId], + target.[registrationCode] = source.[registrationCode], + target.[activeFromDate] = source.[activeFromDate], + target.[activeToDate] = source.[activeToDate], + target.[passwordHash] = source.[passwordHash], + target.[mustChangeNextLogin] = source.[mustChangeNextLogin], + target.[passwordLifeCounter] = source.[passwordLifeCounter], + target.[securityLifeCounter] = source.[securityLifeCounter], + target.[RemoteLoginKey] = source.[RemoteLoginKey], + target.[RemoteLoginGuid] = source.[RemoteLoginGuid], + target.[RemoteLoginStart] = source.[RemoteLoginStart], + target.[RestrictToSSO] = source.[RestrictToSSO], + target.[loginTimes] = source.[loginTimes], + target.[loginWizardInProgress] = source.[loginWizardInProgress], + target.[lastLoginWizardCompleted] = source.[lastLoginWizardCompleted], + target.[primaryUserEmploymentId] = source.[primaryUserEmploymentId], + target.[regionId] = source.[regionId], + target.[preferredTenantId] = source.[preferredTenantId], + target.[AmendUserId] = source.[AmendUserId], + target.[AmendDate] = source.[AmendDate], + target.[Deleted] = source.[Deleted] + WHEN NOT MATCHED BY TARGET THEN + INSERT ( + [Id], [UserName], [countryId], [registrationCode], + [activeFromDate], [activeToDate], [passwordHash], + [mustChangeNextLogin], [passwordLifeCounter], [securityLifeCounter], + [RemoteLoginKey], [RemoteLoginGuid], [RemoteLoginStart], + [RestrictToSSO], [loginTimes], [loginWizardInProgress], + [lastLoginWizardCompleted], [primaryUserEmploymentId], + [regionId], [preferredTenantId], [CreateUserId], + [CreateDate], [AmendUserId], [AmendDate], [Deleted] + ) + VALUES ( + source.[Id], source.[UserName], source.[countryId], source.[registrationCode], + source.[activeFromDate], source.[activeToDate], source.[passwordHash], + source.[mustChangeNextLogin], source.[passwordLifeCounter], source.[securityLifeCounter], + source.[RemoteLoginKey], source.[RemoteLoginGuid], source.[RemoteLoginStart], + source.[RestrictToSSO], source.[loginTimes], source.[loginWizardInProgress], + source.[lastLoginWizardCompleted], source.[primaryUserEmploymentId], + source.[regionId], source.[preferredTenantId],4, + source.[CreateDate], source.[AmendUserId], source.[AmendDate], source.[Deleted] + ); + ALTER TABLE [hub].[user] NOCHECK CONSTRAINT FK_userTBL_userEmploymentTBL; + ALTER TABLE [elfh].[userEmploymentTBL] NOCHECK CONSTRAINT FK_userEmploymentTBL_userTBL; + ALTER TABLE [hub].[User] CHECK CONSTRAINT ALL; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeMergeUser.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeMergeUser.sql new file mode 100644 index 000000000..f4b3dbe93 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeMergeUser.sql @@ -0,0 +1,47 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [AdfMergeMergeUser] + @MergeUserList dbo.MergeUser READONLY +AS +BEGIN + SET NOCOUNT ON; + + SET IDENTITY_INSERT [elfh].[mergeUserTBL] ON; + + MERGE [elfh].[mergeUserTBL] AS target + USING @MergeUserList AS source + ON target.[mergeUserId] = source.[mergeUserId] + + WHEN MATCHED THEN + UPDATE SET + target.[fromUserId] = source.[fromUserId], + target.[intoUserId] = source.[intoUserId], + target.[amendUserId] = source.[amendUserId], + target.[createdDatetime] = source.[createdDatetime] + + WHEN NOT MATCHED BY TARGET THEN + INSERT ( + [mergeUserId], + [fromUserId], + [intoUserId], + [amendUserId], + [createdDatetime] + ) + VALUES ( + source.[mergeUserId], + source.[fromUserId], + source.[intoUserId], + source.[amendUserId], + source.[createdDatetime] + ); + + SET IDENTITY_INSERT [elfh].[mergeUserTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserAdminLocation.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserAdminLocation.sql new file mode 100644 index 000000000..28e48027f --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserAdminLocation.sql @@ -0,0 +1,50 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [AdfMergeUserAdminLocation] + @UserAdminLocationList dbo.UserAdminLocationType READONLY +AS +BEGIN + SET NOCOUNT ON; + + MERGE [elfh].[userAdminLocationTBL] AS target + USING @UserAdminLocationList AS source + ON target.[userId] = source.[userId] + AND target.[adminLocationId] = source.[adminLocationId] -- composite key match + + WHEN MATCHED THEN + UPDATE SET + target.[deleted] = source.[deleted], + target.[amendUserId] = source.[amendUserId], + target.[amendDate] = source.[amendDate], + target.[createdUserId] = source.[createdUserId], + target.[createdDate] = source.[createdDate] + + WHEN NOT MATCHED BY TARGET THEN + INSERT ( + [userId], + [adminLocationId], + [deleted], + [amendUserId], + [amendDate], + [createdUserId], + [createdDate] + ) + VALUES ( + source.[userId], + source.[adminLocationId], + source.[deleted], + source.[amendUserId], + source.[amendDate], + source.[createdUserId], + source.[createdDate] + ); + +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserAttribute.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserAttribute.sql new file mode 100644 index 000000000..ebdf23815 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserAttribute.sql @@ -0,0 +1,62 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeUserAttribute] + @userAttributeList dbo.UserAttribute READONLY -- Table-valued parameter +AS +BEGIN + SET NOCOUNT ON; + SET IDENTITY_INSERT [elfh].[userAttributeTBL] ON; + + MERGE [elfh].[userAttributeTBL] AS target + USING @userAttributeList AS source + ON target.userAttributeId = source.userAttributeId + + WHEN MATCHED THEN + UPDATE SET + userId = source.userId, + attributeId = source.attributeId, + intValue = source.intValue, + textValue = source.textValue, + booleanValue = source.booleanValue, + dateValue = source.dateValue, + deleted = source.deleted, + amendUserId = source.amendUserId, + amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + userAttributeId, + userId, + attributeId, + intValue, + textValue, + booleanValue, + dateValue, + deleted, + amendUserId, + amendDate + ) + VALUES ( + source.userAttributeId, + source.userId, + source.attributeId, + source.intValue, + source.textValue, + source.booleanValue, + source.dateValue, + source.deleted, + source.amendUserId, + source.amendDate + ); + + -- Disable identity insert + SET IDENTITY_INSERT [elfh].[userAttributeTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserEmploymentReference.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserEmploymentReference.sql new file mode 100644 index 000000000..5a5aa29a6 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserEmploymentReference.sql @@ -0,0 +1,51 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [AdfMergeUserEmploymentReference] + @UserEmploymentReferenceList dbo.UserEmploymentReferenceType READONLY +AS +BEGIN + SET NOCOUNT ON; + + SET IDENTITY_INSERT [elfh].[userEmploymentReferenceTBL] ON; + MERGE [elfh].[userEmploymentReferenceTBL] AS target + USING @UserEmploymentReferenceList AS source + ON target.[userEmploymentReferenceId] = source.[userEmploymentReferenceId] + + WHEN MATCHED THEN + UPDATE SET + target.[employmentReferenceTypeId] = source.[employmentReferenceTypeId], + target.[userEmploymentId] = source.[userEmploymentId], + target.[referenceValue] = source.[referenceValue], + target.[deleted] = source.[deleted], + target.[amendUserId] = source.[amendUserId], + target.[amendDate] = source.[amendDate] + + WHEN NOT MATCHED BY TARGET THEN + INSERT ( + [userEmploymentReferenceId], + [employmentReferenceTypeId], + [userEmploymentId], + [referenceValue], + [deleted], + [amendUserId], + [amendDate] + ) + VALUES ( + source.[userEmploymentReferenceId], + source.[employmentReferenceTypeId], + source.[userEmploymentId], + source.[referenceValue], + source.[deleted], + source.[amendUserId], + source.[amendDate] + ); + SET IDENTITY_INSERT [elfh].[userEmploymentReferenceTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserEmploymentResponsibility.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserEmploymentResponsibility.sql new file mode 100644 index 000000000..ca257de1f --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserEmploymentResponsibility.sql @@ -0,0 +1,45 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [AdfMergeUserEmploymentResponsibility] + @UserEmploymentResponsibilityList dbo.UserEmploymentResponsibilityType READONLY +AS +BEGIN + SET NOCOUNT ON; + + SET IDENTITY_INSERT [elfh].[userEmploymentResponsibilityTBL] ON; + MERGE [elfh].[userEmploymentResponsibilityTBL] AS target + USING @UserEmploymentResponsibilityList AS source + ON target.[userEmploymentResponsibilityId] = source.[userEmploymentResponsibilityId] + + WHEN MATCHED THEN + UPDATE SET + target.[userEmploymentId] = source.[userEmploymentId], + target.[additionalResponsibilityId] = source.[additionalResponsibilityId], + target.[deleted] = source.[deleted], + target.[amendUserId] = source.[amendUserId] + + WHEN NOT MATCHED BY TARGET THEN + INSERT ( + [userEmploymentResponsibilityId], + [userEmploymentId], + [additionalResponsibilityId], + [deleted], + [amendUserId] + ) + VALUES ( + source.[userEmploymentResponsibilityId], + source.[userEmploymentId], + source.[additionalResponsibilityId], + source.[deleted], + source.[amendUserId] + ); + SET IDENTITY_INSERT [elfh].[userEmploymentResponsibilityTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserGroupTypeInputValidation.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserGroupTypeInputValidation.sql new file mode 100644 index 000000000..9ffedb0b1 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserGroupTypeInputValidation.sql @@ -0,0 +1,67 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeUserGroupTypeInputValidation] + @userGroupTypeInputValidationList dbo.UserGroupTypeInputValidation READONLY -- Table-valued parameter +AS +BEGIN + SET NOCOUNT ON; + + -- Enable identity insert if userGroupTypeInputValidationId is an IDENTITY column + SET IDENTITY_INSERT [elfh].[userGroupTypeInputValidationTBL] ON; + + MERGE [elfh].[userGroupTypeInputValidationTBL] AS target + USING @userGroupTypeInputValidationList AS source + ON target.userGroupTypeInputValidationId = source.userGroupTypeInputValidationId + + WHEN MATCHED THEN + UPDATE SET + userGroupId = source.userGroupId, + userGroupTypePrefix = source.userGroupTypePrefix, + userGroupTypeId = source.userGroupTypeId, + validationTextValue = source.validationTextValue, + validationMethod = source.validationMethod, + deleted = source.deleted, + amendUserId = source.amendUserId, + amendDate = source.amendDate, + createdUserId = source.createdUserId, + createdDate = source.createdDate + + WHEN NOT MATCHED THEN + INSERT ( + userGroupTypeInputValidationId, + userGroupId, + userGroupTypePrefix, + userGroupTypeId, + validationTextValue, + validationMethod, + deleted, + amendUserId, + amendDate, + createdUserId, + createdDate + ) + VALUES ( + source.userGroupTypeInputValidationId, + source.userGroupId, + source.userGroupTypePrefix, + source.userGroupTypeId, + source.validationTextValue, + source.validationMethod, + source.deleted, + source.amendUserId, + source.amendDate, + source.createdUserId, + source.createdDate + ); + + -- Disable identity insert + SET IDENTITY_INSERT [elfh].[userGroupTypeInputValidationTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserHistory.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserHistory.sql new file mode 100644 index 000000000..7a53f6577 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserHistory.sql @@ -0,0 +1,49 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeUserHistory] + @userHistoryList dbo.UserHistory READONLY +AS +BEGIN + SET NOCOUNT ON; + + -- Enable identity insert if userHistoryId is an IDENTITY column + SET IDENTITY_INSERT [elfh].[userHistoryTBL] ON; + + MERGE [elfh].[userHistoryTBL] AS target + USING @userHistoryList AS source + ON target.[userHistoryId] = source.[userHistoryId] + + WHEN MATCHED THEN + UPDATE SET + [userHistoryTypeId] = source.[userHistoryTypeId], + [userId] = source.[userId], + [createdDate] = source.[createdDate], + [tenantId] = source.[tenantId] + + WHEN NOT MATCHED THEN + INSERT ( + [userHistoryId], + [userHistoryTypeId], + [userId], + [createdDate], + [tenantId] + ) + VALUES ( + source.[userHistoryId], + source.[userHistoryTypeId], + source.[userId], + source.[createdDate], + source.[tenantId] + ); + + -- Disable identity insert + SET IDENTITY_INSERT [elfh].[userHistoryTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserHistoryAttribute.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserHistoryAttribute.sql new file mode 100644 index 000000000..cc17b95fa --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserHistoryAttribute.sql @@ -0,0 +1,62 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [AdfMergeUserHistoryAttribute] + @UserHistoryAttributeList dbo.UserHistoryAttributeType READONLY +AS +BEGIN + SET NOCOUNT ON; + + ALTER TABLE [elfh].[userHistoryAttributeTBL] NOCHECK CONSTRAINT ALL; + SET IDENTITY_INSERT [elfh].[userHistoryAttributeTBL] ON; + MERGE [elfh].[userHistoryAttributeTBL] AS target + USING @UserHistoryAttributeList AS source + ON target.[userHistoryAttributeId] = source.[userHistoryAttributeId] + + WHEN MATCHED THEN + UPDATE SET + target.[userHistoryId] = source.[userHistoryId], + target.[attributeId] = source.[attributeId], + target.[intValue] = source.[intValue], + target.[textValue] = source.[textValue], + target.[booleanValue] = source.[booleanValue], + target.[dateValue] = source.[dateValue], + target.[deleted] = source.[deleted], + target.[amendUserId] = source.[amendUserId], + target.[amendDate] = source.[amendDate] + + WHEN NOT MATCHED BY TARGET THEN + INSERT ( + [userHistoryAttributeId], + [userHistoryId], + [attributeId], + [intValue], + [textValue], + [booleanValue], + [dateValue], + [deleted], + [amendUserId], + [amendDate] + ) + VALUES ( + source.[userHistoryAttributeId], + source.[userHistoryId], + source.[attributeId], + source.[intValue], + source.[textValue], + source.[booleanValue], + source.[dateValue], + source.[deleted], + source.[amendUserId], + source.[amendDate] + ); + SET IDENTITY_INSERT [elfh].[userHistoryAttributeTBL] OFF; + ALTER TABLE [elfh].[userHistoryAttributeTBL] CHECK CONSTRAINT ALL; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserHistoryType.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserHistoryType.sql new file mode 100644 index 000000000..f7fc0d735 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserHistoryType.sql @@ -0,0 +1,35 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeUserHistoryType] + @userHistoryTypeList dbo.UserHistoryType READONLY +AS +BEGIN + SET NOCOUNT ON; + + MERGE [ELFH].[userHistoryTypeTBL] AS target + USING @userHistoryTypeList AS source + ON target.UserHistoryTypeId = source.UserHistoryTypeId + + WHEN MATCHED THEN + UPDATE SET + [Description] = source.[Description] + + WHEN NOT MATCHED THEN + INSERT ( + [UserHistoryTypeId], + [Description] + ) + VALUES ( + source.[UserHistoryTypeId], + source.[Description] + ); + +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserPasswordValidationToke.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserPasswordValidationToke.sql new file mode 100644 index 000000000..d9c65fd6d --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserPasswordValidationToke.sql @@ -0,0 +1,60 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeUserPasswordValidationToken] + @userPasswordValidationTokenList dbo.UserPasswordValidationToken READONLY +AS +BEGIN + SET NOCOUNT ON; + + -- Enable identity insert if userPasswordValidationTokenId is an IDENTITY column + SET IDENTITY_INSERT [elfh].[userPasswordValidationTokenTBL] ON; + MERGE [elfh].[userPasswordValidationTokenTBL] AS target + USING @userPasswordValidationTokenList AS source + ON target.userPasswordValidationTokenId = source.userPasswordValidationTokenId + + WHEN MATCHED THEN + UPDATE SET + hashedToken = source.hashedToken, + salt = source.salt, + [lookup] = source.[lookup], + expiry = source.expiry, + tenantId = source.tenantId, + userId = source.userId, + createdUserId = source.createdUserId, + createdDate = source.createdDate + + WHEN NOT MATCHED THEN + INSERT ( + userPasswordValidationTokenId, + hashedToken, + salt, + [lookup], + expiry, + tenantId, + userId, + createdUserId, + createdDate + ) + VALUES ( + source.userPasswordValidationTokenId, + source.hashedToken, + source.salt, + source.[lookup], + source.expiry, + source.tenantId, + source.userId, + source.createdUserId, + source.createdDate + ); + + -- Disable identity insert + SET IDENTITY_INSERT [elfh].[userPasswordValidationTokenTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserProfileData.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserProfileData.sql new file mode 100644 index 000000000..d1e51c702 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserProfileData.sql @@ -0,0 +1,68 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeUserProfileData] + @UserProfileLists [dbo].[UserProfileType] READONLY +AS +BEGIN + SET NOCOUNT ON; + + MERGE [hub].[UserProfile] AS target + USING @UserProfileLists AS source + ON target.[Id] = source.[Id] + + WHEN MATCHED THEN + UPDATE SET + target.[UserName] = source.[UserName], + target.[EmailAddress] = source.[EmailAddress], + target.[AltEmailAddress] = source.[AltEmailAddress], + target.[FirstName] = source.[FirstName], + target.[LastName] = source.[LastName], + target.[PreferredName] = source.[PreferredName], + target.[Active] = source.[Active], + target.[AmendUserId] = source.[AmendUserId], + target.[AmendDate] = source.[AmendDate], + target.[Deleted] = source.[Deleted] + + WHEN NOT MATCHED BY TARGET THEN + INSERT ( + [Id], + [UserName], + [EmailAddress], + [AltEmailAddress], + [FirstName], + [LastName], + [PreferredName], + [Active], + [CreateUserId], + [CreateDate], + [AmendUserId], + [AmendDate], + [Deleted] + ) + VALUES ( + source.[Id], + source.[UserName], + source.[EmailAddress], + source.[AltEmailAddress], + source.[FirstName], + source.[LastName], + source.[PreferredName], + source.[Active], + 4, + source.[CreateDate], + source.[AmendUserId], + source.[AmendDate], + source.[Deleted] + ); + + + +END; +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserReportingUser.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserReportingUser.sql new file mode 100644 index 000000000..e890b67cd --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserReportingUser.sql @@ -0,0 +1,52 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [AdfMergeUserReportingUser] + @UserReportingUserList dbo.UserReportingUserType READONLY +AS +BEGIN + SET NOCOUNT ON; + + SET IDENTITY_INSERT [elfh].[userReportingUserTBL] ON; + MERGE [elfh].[userReportingUserTBL] AS target + USING @UserReportingUserList AS source + ON target.[userReportingUserId] = source.[userReportingUserId] + + WHEN MATCHED THEN + UPDATE SET + target.[userId] = source.[userId], + target.[reportingUserId] = source.[reportingUserId], + target.[reportable] = source.[reportable], + target.[Deleted] = source.[Deleted], + target.[AmendUserID] = source.[AmendUserID], + target.[AmendDate] = source.[AmendDate] + + WHEN NOT MATCHED BY TARGET THEN + INSERT ( + [userReportingUserId], + [userId], + [reportingUserId], + [reportable], + [Deleted], + [AmendUserID], + [AmendDate] + ) + VALUES ( + source.[userReportingUserId], + source.[userId], + source.[reportingUserId], + source.[reportable], + source.[Deleted], + source.[AmendUserID], + source.[AmendDate] + ); + SET IDENTITY_INSERT [elfh].[userReportingUserTBL] OFF; + -- Optionally re-enable constraints +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserRoleUpgrade.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserRoleUpgrade.sql new file mode 100644 index 000000000..256cac018 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeUserRoleUpgrade.sql @@ -0,0 +1,64 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeUserRoleUpgrade] + @userRoleUpgradeList dbo.UserRoleUpgrade READONLY +AS +BEGIN + SET NOCOUNT ON; + + -- Enable identity insert if userRoleUpgradeId is an IDENTITY column + SET IDENTITY_INSERT [elfh].[userRoleUpgradeTBL] ON; + + MERGE [elfh].[userRoleUpgradeTBL] AS target + USING @userRoleUpgradeList AS source + ON target.[userRoleUpgradeId] = source.[userRoleUpgradeId] + + WHEN MATCHED THEN + UPDATE SET + [userId] = source.[userId], + [emailAddress] = source.[emailAddress], + [upgradeDate] = source.[upgradeDate], + [deleted] = source.[deleted], + [createUserId] = source.[createUserId], + [createDate] = source.[createDate], + [amendUserId] = source.[amendUserId], + [amendDate] = source.[amendDate], + [userHistoryTypeId] = source.[userHistoryTypeId] + + WHEN NOT MATCHED THEN + INSERT ( + [userRoleUpgradeId], + [userId], + [emailAddress], + [upgradeDate], + [deleted], + [createUserId], + [createDate], + [amendUserId], + [amendDate], + [userHistoryTypeId] + ) + VALUES ( + source.[userRoleUpgradeId], + source.[userId], + source.[emailAddress], + source.[upgradeDate], + source.[deleted], + source.[createUserId], + source.[createDate], + source.[amendUserId], + source.[amendDate], + source.[userHistoryTypeId] + ); + + -- Disable identity insert + SET IDENTITY_INSERT [elfh].[userRoleUpgradeTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeattribute.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeattribute.sql new file mode 100644 index 000000000..d6851b39d --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeattribute.sql @@ -0,0 +1,633 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE TYPE [dbo].[EmailTemplate] AS TABLE +( + [emailTemplateId] INT, + [emailTemplateTypeId] INT, + [programmeComponentId] INT, + [title] NVARCHAR(256), + [subject] NVARCHAR(256), + [body] ntext, + [deleted] BIT, + [amendUserID] INT, + [amendDate] DATETIMEOFFSET, + [tenantId] INT +); +GO +CREATE TYPE dbo.UserReportingUserType AS TABLE +( + [userReportingUserId] INT, + [userId] INT, + [reportingUserId] INT, + [reportable] BIT, + [Deleted] BIT, + [AmendUserID] INT, + [AmendDate] DATETIMEOFFSET +); +GO +CREATE TYPE UserHistoryAttributeType AS TABLE +( + [userHistoryAttributeId] INT, + [userHistoryId] INT, + [attributeId] INT, + [intValue] INT NULL, + [textValue] NVARCHAR(1000) NULL, + [booleanValue] BIT NULL, + [dateValue] DATETIMEOFFSET NULL, + [deleted] BIT, + [amendUserId] INT, + [amendDate] DATETIMEOFFSET +); +GO +CREATE TYPE UserEmploymentResponsibilityType AS TABLE +( + [userEmploymentResponsibilityId] INT, + [userEmploymentId] INT, + [additionalResponsibilityId] INT, + [deleted] BIT, + [amendUserId] INT +); +GO +CREATE TYPE UserEmploymentReferenceType AS TABLE +( + [userEmploymentReferenceId] INT, + [employmentReferenceTypeId] INT, + [userEmploymentId] INT, + [referenceValue] NVARCHAR(100), + [deleted] BIT, + [amendUserId] INT, + [amendDate] DATETIMEOFFSET +); +GO +CREATE TYPE dbo.UserAdminLocationType AS TABLE +( + [userId] INT, + [adminLocationId] INT, + [deleted] BIT, + [amendUserId] INT, + [amendDate] DATETIMEOFFSET, + [createdUserId] INT, + [createdDate] DATETIMEOFFSET +); +GO +CREATE TYPE dbo.MergeUser AS TABLE +( + [mergeUserId] INT, + [fromUserId] INT, + [intoUserId] INT, + [amendUserId] INT, + [createdDatetime] DATETIMEOFFSET +); +GO +CREATE TYPE dbo.EmploymentReferenceType AS TABLE +( + [EmploymentReferenceTypeId] INT, + [Title] NVARCHAR(255), + [RefAccess] NVARCHAR(255) +); +GO +CREATE TYPE [dbo].[UserProfileType] AS TABLE +( + [Id] INT , + [UserName] NVARCHAR(255) , + [EmailAddress] NVARCHAR(255) , + [AltEmailAddress] NVARCHAR(255) , + [FirstName] NVARCHAR(255) , + [LastName] NVARCHAR(255) , + [PreferredName] NVARCHAR(255) , + [Active] BIT , + [CreateDate] DATETIMEOFFSET, + [AmendUserId] INT , + [AmendDate] DATETIMEOFFSET, + [Deleted] BIT +); +GO +CREATE TYPE dbo.UserType_Hub AS TABLE +( + [Id] INT, + [UserName] NVARCHAR(250), + [countryId] INT, + [registrationCode] NVARCHAR(100), + [activeFromDate] DATETIMEOFFSET, + [activeToDate] DATETIMEOFFSET, + [passwordHash] NVARCHAR(500), + [mustChangeNextLogin] BIT, + [passwordLifeCounter] INT, + [securityLifeCounter] INT, + [RemoteLoginKey] NVARCHAR(250), + [RemoteLoginGuid] UNIQUEIDENTIFIER, + [RemoteLoginStart] DATETIMEOFFSET, + [RestrictToSSO] BIT, + [loginTimes] INT, + [loginWizardInProgress] BIT, + [lastLoginWizardCompleted] DATETIMEOFFSET, + [primaryUserEmploymentId] INT, + [regionId] INT, + [preferredTenantId] INT, + [CreateDate] DATETIMEOFFSET, + [AmendUserId] INT, + [AmendDate] DATETIMEOFFSET, + [Deleted] BIT +); +GO +CREATE TYPE dbo.UserTermsAndConditions AS TABLE +( + [userTermsAndConditionsId] INT, + [termsAndConditionsId] INT, + [userId] INT, + [acceptanceDate] DATETIMEOFFSET, + [deleted] BIT, + [amendUserID] INT, + [amendDate] DATETIMEOFFSET +); +GO +CREATE TYPE dbo.UserRoleUpgrade AS TABLE +( + [userRoleUpgradeId] INT, + [userId] INT, + [emailAddress] NVARCHAR(100), + [upgradeDate] DATETIMEOFFSET, + [deleted] BIT, + [createUserId] INT, + [createDate] DATETIMEOFFSET, + [amendUserId] INT, + [amendDate] DATETIMEOFFSET, + [userHistoryTypeId] INT +); +GO +CREATE TYPE dbo.UserHistory AS TABLE +( + [userHistoryId] INT, + [userHistoryTypeId] INT, + [userId] INT, + [createdDate] DATETIMEOFFSET, + [tenantId] INT +); +GO +CREATE TYPE dbo.UserHistoryType AS TABLE +( + UserHistoryTypeId INT, + [Description] NVARCHAR(100) +); +GO +CREATE TYPE dbo.UserPasswordValidationToken AS TABLE +( + userPasswordValidationTokenId INT, + hashedToken NVARCHAR(128), + salt NVARCHAR(128), + [lookup] NVARCHAR(128), + expiry DATETIMEOFFSET(7), + tenantId INT, + userId INT, + createdUserId INT, + createdDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.UserGroupTypeInputValidation AS TABLE +( + userGroupTypeInputValidationId INT, + userGroupId INT, + userGroupTypePrefix NVARCHAR(10), + userGroupTypeId INT, + validationTextValue NVARCHAR(1000), + validationMethod INT, + deleted BIT, + amendUserId INT, + amendDate DATETIMEOFFSET(7), + createdUserId INT, + createdDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.UserAttribute AS TABLE +( + userAttributeId INT, + userId INT, + attributeId INT, + intValue INT, + textValue NVARCHAR(255), + booleanValue BIT, + dateValue DATETIMEOFFSET(7), + deleted BIT, + amendUserId INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.TermsAndConditions AS TABLE +( + termsAndConditionsId INT, + createdDate DATETIMEOFFSET(7), + description NVARCHAR(512), + details ntext, + tenantId INT, + active BIT, + reportable BIT, + deleted BIT, + amendUserID INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.TenantUrl AS TABLE +( + tenantUrlId INT, + tenantId INT, + urlHostName NVARCHAR(128), + useHostForAuth BIT, + deleted BIT, + amendUserID INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.Tenant AS TABLE +( + tenantId INT, + tenantCode NVARCHAR(100), + tenantName NVARCHAR(250), + tenantDescription NVARCHAR(1024), + showFullCatalogInfoMessageInd BIT, + catalogUrl NVARCHAR(500), + quickStartGuideUrl NVARCHAR(1024), + supportFormUrl NVARCHAR(500), + liveChatStatus NVARCHAR(50), + liveChatSnippet NVARCHAR(2048), + myElearningDefaultView NVARCHAR(100), + preLoginCatalogueDefaultView NVARCHAR(100), + postLoginCatalogueDefaultView NVARCHAR(100), + authSignInUrlRelative NVARCHAR(1024), + authSignOutUrlRelative NVARCHAR(500), + authSecret UNIQUEIDENTIFIER, + deleted BIT, + amendUserId INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.TenantSmtp AS TABLE +( + tenantId INT, + deliveryMethod NVARCHAR(128), + pickupDirectoryLocation NVARCHAR(256), + [from] NVARCHAR(256), + userName NVARCHAR(256), + [password] NVARCHAR(256), + enableSsl BIT, + host NVARCHAR(256), + port INT, + active BIT, + deleted BIT, + amendUserId INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.SystemSetting AS TABLE +( + systemSettingId INT, + systemSettingName NVARCHAR(50), + intValue INT, + textValue NVARCHAR(255), + booleanValue BIT, + dateValue DATETIMEOFFSET(7), + deleted BIT, + amendUserId INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.LoginWizardStageActivity AS TABLE +( + loginWizardStageActivityId INT, + loginWizardStageId INT, + userId INT, + activityDatetime DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.LoginWizardRule AS TABLE +( + loginWizardRuleId INT, + loginWizardStageId INT, + loginWizardRuleCategoryId INT, + description NVARCHAR(128), + reasonDisplayText NVARCHAR(1024), + activationPeriod INT, + required BIT, + active BIT, + deleted BIT, + amendUserId INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.LoginWizardStage AS TABLE +( + loginWizardStageId INT, + description NVARCHAR(128), + reasonDisplayText NVARCHAR(1024), + deleted BIT, + amendUserId INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.IPCountryLookup AS TABLE +( + fromIP NVARCHAR(50), + toIP NVARCHAR(50), + country NVARCHAR(100), + fromInt BIGINT, + toInt BIGINT +); +GO +CREATE TYPE dbo.EmailTemplateType AS TABLE +( + emailTemplateTypeId INT, + emailTemplateTypeName NVARCHAR(250), + availableTags NVARCHAR(MAX), + deleted BIT, + amendUserID INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.Attribute AS TABLE +( + attributeId INT, + attributeTypeId INT, + attributeName NVARCHAR(250), + attributeAccess NVARCHAR(100), + attributeDescription NVARCHAR(500), + deleted BIT, + amendUserId INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.AttributeType AS TABLE +( + attributeTypeId INT, + attributeTypeName NVARCHAR(250), + deleted BIT, + amendUserId INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.GDCRegister AS TABLE +( + reg_number NVARCHAR(50), + Dentist bit, + Title NVARCHAR(50), + Surname NVARCHAR(200), + Forenames NVARCHAR(200), + honorifics NVARCHAR(200), + house_name NVARCHAR(200), + address_line1 NVARCHAR(200), + address_line2 NVARCHAR(200), + address_line3 NVARCHAR(200), + address_line4 NVARCHAR(200), + Town NVARCHAR(200), + County NVARCHAR(200), + PostCode NVARCHAR(50), + Country NVARCHAR(100), + regdate NVARCHAR(50), + qualifications NVARCHAR(1000), + dcp_titles NVARCHAR(500), + specialties NVARCHAR(500), + [condition] NVARCHAR(500), + suspension NVARCHAR(500), + dateProcessed DATETIMEOFFSET(7), + action NVARCHAR(50) +); +GO + +CREATE TYPE dbo.GMCLRMP AS TABLE +( + GMC_Ref_No NVARCHAR(50), + Surname NVARCHAR(200), + Given_Name NVARCHAR(200), + Year_Of_Qualification FLOAT, + GP_Register_Date NVARCHAR(100), + Registration_Status NVARCHAR(100), + Other_Names NVARCHAR(200), + dateProcessed DATETIME, + action NVARCHAR(50) +); +GO +CREATE TYPE dbo.Region AS TABLE +( + regionId INT, + regionName NVARCHAR(250), + displayOrder INT, + deleted BIT, + amendUserID INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.UserEmployment AS TABLE +( + userEmploymentId INT, + userId INT, + jobRoleId INT, + specialtyId INT, + gradeId INT, + schoolId INT, + locationId INT, + medicalCouncilId INT, + medicalCouncilNo NVARCHAR(100), + startDate DATETIMEOFFSET(7), + endDate DATETIMEOFFSET(7), + deleted BIT, + archived BIT, + amendUserId INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.Location AS TABLE +( + locationId INT, + locationCode NVARCHAR(50), + locationName NVARCHAR(250), + locationSubName NVARCHAR(250), + locationTypeId INT, + address1 NVARCHAR(250), + address2 NVARCHAR(250), + address3 NVARCHAR(250), + address4 NVARCHAR(250), + town NVARCHAR(250), + county NVARCHAR(250), + postCode NVARCHAR(50), + telephone NVARCHAR(50), + acute BIT, + ambulance BIT, + mental BIT, + care BIT, + mainHosp BIT, + nhsCode NVARCHAR(50), + parentId INT, + dataSource NVARCHAR(250), + active BIT, + importExclusion BIT, + depth INT, + lineage NVARCHAR(MAX), + created DATETIMEOFFSET(7), + updated DATETIMEOFFSET(7), + archivedDate DATETIMEOFFSET(7), + countryId INT, + iguId INT, + letbId INT, + ccgId INT, + healthServiceId INT, + healthBoardId INT, + primaryTrustId INT, + secondaryTrustId INT, + islandId INT, + otherNHSOrganisationId INT +); +GO +CREATE TYPE dbo.LocationType AS TABLE +( + locationTypeID INT, + locationType NVARCHAR(250), + countryId INT, + healthService NVARCHAR(250), + healthBoard NVARCHAR(250), + primaryTrust NVARCHAR(250), + secondaryTrust NVARCHAR(250) +); +GO +CREATE TYPE dbo.Country AS TABLE +( + countryId INT, + countryName NVARCHAR(250), + alpha2 NVARCHAR(10), + alpha3 NVARCHAR(10), + numeric NVARCHAR(10), + EUVatRate DECIMAL(10,4), + displayOrder INT, + deleted BIT, + amendUserId INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.School AS TABLE +( + schoolId INT, + deaneryId INT, + specialtyId INT, + schoolName NVARCHAR(250), + displayOrder INT, + deleted BIT, + amendUserID INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.Deanery AS TABLE +( + deaneryId INT, + deaneryName NVARCHAR(250), + displayOrder INT, + deleted BIT, + amendUserID INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.Grade AS TABLE +( + gradeId INT, + gradeName NVARCHAR(250), + displayOrder INT, + deleted BIT, + amendUserID INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.Specialty AS TABLE +( + specialtyId INT, + specialtyName NVARCHAR(250), + displayOrder INT, + deleted BIT, + amendUserID INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.JobRole AS TABLE +( + jobRoleId INT, + staffGroupId INT, + jobRoleName NVARCHAR(250), + medicalCouncilId INT, + displayOrder INT, + deleted BIT, + amendUserID INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.StaffGroup AS TABLE +( + staffGroupId INT, + staffGroupName NVARCHAR(250), + displayOrder INT, + internalUsersOnly BIT, + deleted BIT, + amendUserID INT, + amendDate DATETIMEOFFSET(7) +); +GO +CREATE TYPE dbo.MedicalCouncil AS TABLE +( + medicalCouncilId int, + medicalCouncilName nvarchar(50), + medicalCouncilCode nvarchar(50), + uploadPrefix nvarchar(3), + includeOnCerts bit , + deleted bit, + amendUserID int , + amendDate datetimeoffset(7) +); +GO +CREATE PROCEDURE [dbo].[AdfMergeattribute] + @attributeList dbo.Attribute READONLY -- Table-valued parameter +AS +BEGIN + SET NOCOUNT ON; + + SET IDENTITY_INSERT [elfh].[attributeTBL] ON; + + MERGE [elfh].[attributeTBL] AS target + USING @attributeList AS source + ON target.attributeId = source.attributeId + + WHEN MATCHED THEN + UPDATE SET + attributeTypeId = source.attributeTypeId, + attributeName = source.attributeName, + attributeAccess = source.attributeAccess, + attributeDescription = source.attributeDescription, + deleted = source.deleted, + amendUserId = source.amendUserId, + amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + attributeId, + attributeTypeId, + attributeName, + attributeAccess, + attributeDescription, + deleted, + amendUserId, + amendDate + ) + VALUES ( + source.attributeId, + source.attributeTypeId, + source.attributeName, + source.attributeAccess, + source.attributeDescription, + source.deleted, + source.amendUserId, + source.amendDate + ); + + SET IDENTITY_INSERT [elfh].[attributeTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeattributeType.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeattributeType.sql new file mode 100644 index 000000000..6b1930b57 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeattributeType.sql @@ -0,0 +1,45 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeattributeType] + @attributeTypeList dbo.AttributeType READONLY -- Table-valued parameter +AS +BEGIN + SET NOCOUNT ON; + + + MERGE [elfh].[attributeTypeTBL] AS target + USING @attributeTypeList AS source + ON target.attributeTypeId = source.attributeTypeId + + WHEN MATCHED THEN + UPDATE SET + attributeTypeName = source.attributeTypeName, + deleted = source.deleted, + amendUserId = source.amendUserId, + amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + attributeTypeId, + attributeTypeName, + deleted, + amendUserId, + amendDate + ) + VALUES ( + source.attributeTypeId, + source.attributeTypeName, + source.deleted, + source.amendUserId, + source.amendDate + ); + +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergecountry.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergecountry.sql new file mode 100644 index 000000000..dbc50e13d --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergecountry.sql @@ -0,0 +1,62 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +create PROCEDURE [dbo].[AdfMergecountry] + @countryList dbo.Country READONLY -- Table-valued parameter type +AS +BEGIN + SET NOCOUNT ON; + + SET IDENTITY_INSERT [elfh].[countryTBL] ON; + + MERGE [elfh].[countryTBL] AS target + USING @countryList AS source + ON target.countryId = source.countryId + + WHEN MATCHED THEN + UPDATE SET + countryName = source.countryName, + alpha2 = source.alpha2, + alpha3 = source.alpha3, + numeric = source.numeric, + EUVatRate = source.EUVatRate, + displayOrder = source.displayOrder, + deleted = source.deleted, + amendUserId = source.amendUserId, + amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + countryId, + countryName, + alpha2, + alpha3, + numeric, + EUVatRate, + displayOrder, + deleted, + amendUserId, + amendDate + ) + VALUES ( + source.countryId, + source.countryName, + source.alpha2, + source.alpha3, + source.numeric, + source.EUVatRate, + source.displayOrder, + source.deleted, + source.amendUserId, + source.amendDate + ); + + SET IDENTITY_INSERT [elfh].[countryTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergedeanery.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergedeanery.sql new file mode 100644 index 000000000..6121f1941 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergedeanery.sql @@ -0,0 +1,47 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergedeanery] + @deaneryList dbo.Deanery READONLY -- Table-valued parameter type +AS +BEGIN + SET NOCOUNT ON; + SET IDENTITY_INSERT [elfh].[deaneryTBL] ON; + MERGE [elfh].[deaneryTBL] AS target + USING @deaneryList AS source + ON target.deaneryId = source.deaneryId + + WHEN MATCHED THEN + UPDATE SET + deaneryName = source.deaneryName, + displayOrder = source.displayOrder, + deleted = source.deleted, + amendUserID = source.amendUserID, + amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + deaneryId, + deaneryName, + displayOrder, + deleted, + amendUserID, + amendDate + ) + VALUES ( + source.deaneryId, + source.deaneryName, + source.displayOrder, + source.deleted, + source.amendUserID, + source.amendDate + ); + SET IDENTITY_INSERT [elfh].[deaneryTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeemailTemplateType.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeemailTemplateType.sql new file mode 100644 index 000000000..b59c16fbd --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeemailTemplateType.sql @@ -0,0 +1,47 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeemailTemplateType] + @emailTemplateTypeList dbo.EmailTemplateType READONLY -- Table-valued parameter +AS +BEGIN + SET NOCOUNT ON; + + MERGE [elfh].[emailTemplateTypeTBL] AS target + USING @emailTemplateTypeList AS source + ON target.emailTemplateTypeId = source.emailTemplateTypeId + + WHEN MATCHED THEN + UPDATE SET + emailTemplateTypeName = source.emailTemplateTypeName, + availableTags = source.availableTags, + deleted = source.deleted, + amendUserID = source.amendUserID, + amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + emailTemplateTypeId, + emailTemplateTypeName, + availableTags, + deleted, + amendUserID, + amendDate + ) + VALUES ( + source.emailTemplateTypeId, + source.emailTemplateTypeName, + source.availableTags, + source.deleted, + source.amendUserID, + source.amendDate + ); + +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergegdcRegister.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergegdcRegister.sql new file mode 100644 index 000000000..e0878089a --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergegdcRegister.sql @@ -0,0 +1,98 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergegdcRegister] + @gdcRegisterList dbo.GDCRegister READONLY -- Table-valued parameter +AS +BEGIN + SET NOCOUNT ON; + + MERGE [ELFH].[gdcRegisterTBL] AS target + USING @gdcRegisterList AS source + ON target.reg_number = source.reg_number + + WHEN MATCHED THEN + UPDATE SET + Dentist = source.Dentist, + Title = source.Title, + Surname = source.Surname, + Forenames = source.Forenames, + honorifics = source.honorifics, + house_name = source.house_name, + address_line1 = source.address_line1, + address_line2 = source.address_line2, + address_line3 = source.address_line3, + address_line4 = source.address_line4, + Town = source.Town, + County = source.County, + PostCode = source.PostCode, + Country = source.Country, + regdate = source.regdate, + qualifications = source.qualifications, + dcp_titles = source.dcp_titles, + specialties = source.specialties, + [condition] = source.[condition], + suspension = source.suspension, + dateProcessed = source.dateProcessed, + action = source.action + + WHEN NOT MATCHED THEN + INSERT ( + reg_number, + Dentist, + Title, + Surname, + Forenames, + honorifics, + house_name, + address_line1, + address_line2, + address_line3, + address_line4, + Town, + County, + PostCode, + Country, + regdate, + qualifications, + dcp_titles, + specialties, + [condition], + suspension, + dateProcessed, + action + ) + VALUES ( + source.reg_number, + source.Dentist, + source.Title, + source.Surname, + source.Forenames, + source.honorifics, + source.house_name, + source.address_line1, + source.address_line2, + source.address_line3, + source.address_line4, + source.Town, + source.County, + source.PostCode, + source.Country, + source.regdate, + source.qualifications, + source.dcp_titles, + source.specialties, + source.[condition], + source.suspension, + source.dateProcessed, + source.action + ); + +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergegmclrmp.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergegmclrmp.sql new file mode 100644 index 000000000..4f94ad397 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergegmclrmp.sql @@ -0,0 +1,56 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergegmclrmp] + @gmclrmpList dbo.GMCLRMP READONLY -- Table-valued parameter type +AS +BEGIN + SET NOCOUNT ON; + + MERGE [elfh].[gmclrmpTBL] AS target + USING @gmclrmpList AS source + ON target.GMC_Ref_No = source.GMC_Ref_No + + WHEN MATCHED THEN + UPDATE SET + Surname = source.Surname, + Given_Name = source.Given_Name, + Year_Of_Qualification = source.Year_Of_Qualification, + GP_Register_Date = source.GP_Register_Date, + Registration_Status = source.Registration_Status, + Other_Names = source.Other_Names, + dateProcessed = source.dateProcessed, + action = source.action + + WHEN NOT MATCHED THEN + INSERT ( + GMC_Ref_No, + Surname, + Given_Name, + Year_Of_Qualification, + GP_Register_Date, + Registration_Status, + Other_Names, + dateProcessed, + action + ) + VALUES ( + source.GMC_Ref_No, + source.Surname, + source.Given_Name, + source.Year_Of_Qualification, + source.GP_Register_Date, + source.Registration_Status, + source.Other_Names, + source.dateProcessed, + source.action + ); + +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergegrade.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergegrade.sql new file mode 100644 index 000000000..8994639d9 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergegrade.sql @@ -0,0 +1,47 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergegrade] + @gradeList dbo.Grade READONLY -- Table-valued parameter type +AS +BEGIN + SET NOCOUNT ON; + SET IDENTITY_INSERT [elfh].[gradeTBL] ON; + MERGE [elfh].[gradeTBL] AS target + USING @gradeList AS source + ON target.gradeId = source.gradeId + + WHEN MATCHED THEN + UPDATE SET + gradeName = source.gradeName + , displayOrder = source.displayOrder + , deleted = source.deleted + , amendUserID = source.amendUserID + , amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + gradeId + , gradeName + , displayOrder + , deleted + , amendUserID + , amendDate + ) + VALUES ( + source.gradeId + , source.gradeName + , source.displayOrder + , source.deleted + , source.amendUserID + , source.amendDate + ); + SET IDENTITY_INSERT [elfh].[gradeTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeipCountryLookup.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeipCountryLookup.sql new file mode 100644 index 000000000..bc982a2a8 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeipCountryLookup.sql @@ -0,0 +1,43 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeipCountryLookup] + @ipCountryLookupList dbo.IPCountryLookup READONLY -- Table-valued parameter +AS +BEGIN + SET NOCOUNT ON; + + MERGE [elfh].[ipCountryLookupTBL] AS target + USING @ipCountryLookupList AS source + ON target.fromInt = source.fromInt AND target.toInt = source.toInt + + WHEN MATCHED THEN + UPDATE SET + fromIP = source.fromIP, + toIP = source.toIP, + country = source.country + + WHEN NOT MATCHED THEN + INSERT ( + fromIP, + toIP, + country, + fromInt, + toInt + ) + VALUES ( + source.fromIP, + source.toIP, + source.country, + source.fromInt, + source.toInt + ); + +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergejobRole.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergejobRole.sql new file mode 100644 index 000000000..8b36bf4e6 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergejobRole.sql @@ -0,0 +1,53 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergejobRole] + @jobRoleList dbo.JobRole READONLY -- table-valued parameter type +AS +BEGIN + SET NOCOUNT ON; + SET IDENTITY_INSERT [elfh].[jobRoleTBL] ON; + MERGE [elfh].[jobRoleTBL] AS target + USING @jobRoleList AS source + ON target.jobRoleId = source.jobRoleId + + WHEN MATCHED THEN + UPDATE SET + staffGroupId = source.staffGroupId + , jobRoleName = source.jobRoleName + , medicalCouncilId = source.medicalCouncilId + , displayOrder = source.displayOrder + , deleted = source.deleted + , amendUserID = source.amendUserID + , amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + jobRoleId + , staffGroupId + , jobRoleName + , medicalCouncilId + , displayOrder + , deleted + , amendUserID + , amendDate + ) + VALUES ( + source.jobRoleId + , source.staffGroupId + , source.jobRoleName + , source.medicalCouncilId + , source.displayOrder + , source.deleted + , source.amendUserID + , source.amendDate + ); + SET IDENTITY_INSERT [elfh].[jobRoleTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergelocation.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergelocation.sql new file mode 100644 index 000000000..dda113cd5 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergelocation.sql @@ -0,0 +1,142 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergelocation] + @locationList dbo.Location READONLY -- Table-valued parameter type +AS +BEGIN + SET NOCOUNT ON; + MERGE [elfh].[locationTBL] AS target + USING @locationList AS source + ON target.locationId = source.locationId + + WHEN MATCHED THEN + UPDATE SET + locationCode = source.locationCode, + locationName = source.locationName, + locationSubName = source.locationSubName, + locationTypeId = source.locationTypeId, + address1 = source.address1, + address2 = source.address2, + address3 = source.address3, + address4 = source.address4, + town = source.town, + county = source.county, + postCode = source.postCode, + telephone = source.telephone, + acute = source.acute, + ambulance = source.ambulance, + mental = source.mental, + care = source.care, + mainHosp = source.mainHosp, + nhsCode = source.nhsCode, + parentId = source.parentId, + dataSource = source.dataSource, + active = source.active, + importExclusion = source.importExclusion, + depth = source.depth, + lineage = source.lineage, + created = source.created, + updated = source.updated, + archivedDate = source.archivedDate, + countryId = source.countryId, + iguId = source.iguId, + letbId = source.letbId, + ccgId = source.ccgId, + healthServiceId = source.healthServiceId, + healthBoardId = source.healthBoardId, + primaryTrustId = source.primaryTrustId, + secondaryTrustId = source.secondaryTrustId, + islandId = source.islandId, + otherNHSOrganisationId = source.otherNHSOrganisationId + + WHEN NOT MATCHED THEN + INSERT ( + locationId, + locationCode, + locationName, + locationSubName, + locationTypeId, + address1, + address2, + address3, + address4, + town, + county, + postCode, + telephone, + acute, + ambulance, + mental, + care, + mainHosp, + nhsCode, + parentId, + dataSource, + active, + importExclusion, + depth, + lineage, + created, + updated, + archivedDate, + countryId, + iguId, + letbId, + ccgId, + healthServiceId, + healthBoardId, + primaryTrustId, + secondaryTrustId, + islandId, + otherNHSOrganisationId + ) + VALUES ( + source.locationId, + source.locationCode, + source.locationName, + source.locationSubName, + source.locationTypeId, + source.address1, + source.address2, + source.address3, + source.address4, + source.town, + source.county, + source.postCode, + source.telephone, + source.acute, + source.ambulance, + source.mental, + source.care, + source.mainHosp, + source.nhsCode, + source.parentId, + source.dataSource, + source.active, + source.importExclusion, + source.depth, + source.lineage, + source.created, + source.updated, + source.archivedDate, + source.countryId, + source.iguId, + source.letbId, + source.ccgId, + source.healthServiceId, + source.healthBoardId, + source.primaryTrustId, + source.secondaryTrustId, + source.islandId, + source.otherNHSOrganisationId + ); + +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergelocationType.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergelocationType.sql new file mode 100644 index 000000000..df660e586 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergelocationType.sql @@ -0,0 +1,55 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergelocationType] + @locationTypeList dbo.LocationType READONLY -- Table-valued parameter type +AS +BEGIN + SET NOCOUNT ON; + + -- Enable explicit identity insert (if locationTypeID is an IDENTITY column) + SET IDENTITY_INSERT [elfh].[locationTypeTBL] ON; + + MERGE [elfh].[locationTypeTBL] AS target + USING @locationTypeList AS source + ON target.locationTypeID = source.locationTypeID + + WHEN MATCHED THEN + UPDATE SET + locationType = source.locationType, + countryId = source.countryId, + healthService = source.healthService, + healthBoard = source.healthBoard, + primaryTrust = source.primaryTrust, + secondaryTrust = source.secondaryTrust + + WHEN NOT MATCHED THEN + INSERT ( + locationTypeID, + locationType, + countryId, + healthService, + healthBoard, + primaryTrust, + secondaryTrust + ) + VALUES ( + source.locationTypeID, + source.locationType, + source.countryId, + source.healthService, + source.healthBoard, + source.primaryTrust, + source.secondaryTrust + ); + + -- Disable identity insert after operation + SET IDENTITY_INSERT [elfh].[locationTypeTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeloginWizardRule.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeloginWizardRule.sql new file mode 100644 index 000000000..53a4b8d44 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeloginWizardRule.sql @@ -0,0 +1,60 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeloginWizardRule] + @loginWizardRuleList dbo.LoginWizardRule READONLY -- Table-valued parameter +AS +BEGIN + SET NOCOUNT ON; + MERGE [elfh].[loginWizardRuleTBL] AS target + USING @loginWizardRuleList AS source + ON target.loginWizardRuleId = source.loginWizardRuleId + + WHEN MATCHED THEN + UPDATE SET + loginWizardStageId = source.loginWizardStageId, + loginWizardRuleCategoryId = source.loginWizardRuleCategoryId, + description = source.description, + reasonDisplayText = source.reasonDisplayText, + activationPeriod = source.activationPeriod, + required = source.required, + active = source.active, + deleted = source.deleted, + amendUserId = source.amendUserId, + amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + loginWizardRuleId, + loginWizardStageId, + loginWizardRuleCategoryId, + description, + reasonDisplayText, + activationPeriod, + required, + active, + deleted, + amendUserId, + amendDate + ) + VALUES ( + source.loginWizardRuleId, + source.loginWizardStageId, + source.loginWizardRuleCategoryId, + source.description, + source.reasonDisplayText, + source.activationPeriod, + source.required, + source.active, + source.deleted, + source.amendUserId, + source.amendDate + ); +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeloginWizardStage.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeloginWizardStage.sql new file mode 100644 index 000000000..bcf50762b --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeloginWizardStage.sql @@ -0,0 +1,46 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeloginWizardStage] + @loginWizardStageList dbo.LoginWizardStage READONLY -- Table-valued parameter +AS +BEGIN + SET NOCOUNT ON; + MERGE [elfh].[loginWizardStageTBL] AS target + USING @loginWizardStageList AS source + ON target.loginWizardStageId = source.loginWizardStageId + + WHEN MATCHED THEN + UPDATE SET + description = source.description, + reasonDisplayText = source.reasonDisplayText, + deleted = source.deleted, + amendUserId = source.amendUserId, + amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + loginWizardStageId, + description, + reasonDisplayText, + deleted, + amendUserId, + amendDate + ) + VALUES ( + source.loginWizardStageId, + source.description, + source.reasonDisplayText, + source.deleted, + source.amendUserId, + source.amendDate + ); + +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeloginWizardStageActivity.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeloginWizardStageActivity.sql new file mode 100644 index 000000000..ad1d56d86 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeloginWizardStageActivity.sql @@ -0,0 +1,43 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeloginWizardStageActivity] + @loginWizardStageActivityList dbo.LoginWizardStageActivity READONLY -- Table-valued parameter +AS +BEGIN + SET NOCOUNT ON; + + SET IDENTITY_INSERT [elfh].[loginWizardStageActivityTBL] ON; + MERGE [elfh].[loginWizardStageActivityTBL] AS target + USING @loginWizardStageActivityList AS source + ON target.loginWizardStageActivityId = source.loginWizardStageActivityId + + WHEN MATCHED THEN + UPDATE SET + loginWizardStageId = source.loginWizardStageId, + userId = source.userId, + activityDatetime = source.activityDatetime + + WHEN NOT MATCHED THEN + INSERT ( + loginWizardStageActivityId, + loginWizardStageId, + userId, + activityDatetime + ) + VALUES ( + source.loginWizardStageActivityId, + source.loginWizardStageId, + source.userId, + source.activityDatetime + ); + + SET IDENTITY_INSERT [elfh].[loginWizardStageActivityTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergemedicalCouncil.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergemedicalCouncil.sql new file mode 100644 index 000000000..4f2575378 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergemedicalCouncil.sql @@ -0,0 +1,50 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergemedicalCouncil] + @medicalCouncilList dbo.MedicalCouncil READONLY +AS +BEGIN + SET NOCOUNT ON; + MERGE [elfh].[medicalCouncilTBL] AS target + USING @medicalCouncilList AS source + ON target.medicalCouncilId = source.medicalCouncilId + WHEN MATCHED THEN + UPDATE SET + medicalCouncilName = source.medicalCouncilName + ,medicalCouncilCode = source.medicalCouncilCode + ,uploadPrefix = source.uploadPrefix + ,includeOnCerts = source.includeOnCerts + ,deleted = source.deleted + ,amendUserID = source.amendUserID + ,amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + medicalCouncilId + ,medicalCouncilName + ,medicalCouncilCode + ,uploadPrefix + ,includeOnCerts + ,deleted + ,amendUserID + ,amendDate + ) + VALUES ( + source.medicalCouncilId + ,source.medicalCouncilName + ,source.medicalCouncilCode + ,source.uploadPrefix + ,source.includeOnCerts + ,source.deleted + ,source.amendUserID + ,source.amendDate + ); +END +GO \ No newline at end of file diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeregion.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeregion.sql new file mode 100644 index 000000000..589f42112 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeregion.sql @@ -0,0 +1,47 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeregion] + @regionList dbo.Region READONLY -- Table-valued parameter type +AS +BEGIN + SET NOCOUNT ON; + + MERGE [elfh].[regionTBL] AS target + USING @regionList AS source + ON target.regionId = source.regionId + + WHEN MATCHED THEN + UPDATE SET + regionName = source.regionName, + displayOrder = source.displayOrder, + deleted = source.deleted, + amendUserID = source.amendUserID, + amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + regionId, + regionName, + displayOrder, + deleted, + amendUserID, + amendDate + ) + VALUES ( + source.regionId, + source.regionName, + source.displayOrder, + source.deleted, + source.amendUserID, + source.amendDate + ); + +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeschool.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeschool.sql new file mode 100644 index 000000000..3e6cd502f --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeschool.sql @@ -0,0 +1,53 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeschool] + @schoolList dbo.School READONLY -- Table-valued parameter type +AS +BEGIN + SET NOCOUNT ON; + SET IDENTITY_INSERT [elfh].[schoolTBL] ON; + MERGE [elfh].[schoolTBL] AS target + USING @schoolList AS source + ON target.schoolId = source.schoolId + + WHEN MATCHED THEN + UPDATE SET + deaneryId = source.deaneryId, + specialtyId = source.specialtyId, + schoolName = source.schoolName, + displayOrder = source.displayOrder, + deleted = source.deleted, + amendUserID = source.amendUserID, + amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + schoolId, + deaneryId, + specialtyId, + schoolName, + displayOrder, + deleted, + amendUserID, + amendDate + ) + VALUES ( + source.schoolId, + source.deaneryId, + source.specialtyId, + source.schoolName, + source.displayOrder, + source.deleted, + source.amendUserID, + source.amendDate + ); + SET IDENTITY_INSERT [elfh].[schoolTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergespecialty.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergespecialty.sql new file mode 100644 index 000000000..533476cdc --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergespecialty.sql @@ -0,0 +1,47 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergespecialty] + @specialtyList dbo.Specialty READONLY -- Table-valued parameter type +AS +BEGIN + SET NOCOUNT ON; + SET IDENTITY_INSERT [elfh].[specialtyTBL] ON; + MERGE [elfh].[specialtyTBL] AS target + USING @specialtyList AS source + ON target.specialtyId = source.specialtyId + + WHEN MATCHED THEN + UPDATE SET + specialtyName = source.specialtyName + , displayOrder = source.displayOrder + , deleted = source.deleted + , amendUserID = source.amendUserID + , amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + specialtyId + , specialtyName + , displayOrder + , deleted + , amendUserID + , amendDate + ) + VALUES ( + source.specialtyId + , source.specialtyName + , source.displayOrder + , source.deleted + , source.amendUserID + , source.amendDate + ); + SET IDENTITY_INSERT [elfh].[specialtyTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergestaffGroup.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergestaffGroup.sql new file mode 100644 index 000000000..d40f91c31 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergestaffGroup.sql @@ -0,0 +1,50 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergestaffGroup] + @staffGroupList dbo.StaffGroup READONLY -- your table type must exist +AS +BEGIN + SET NOCOUNT ON; + SET IDENTITY_INSERT [elfh].[staffGroupTBL] ON; + MERGE [elfh].[staffGroupTBL] AS target + USING @staffGroupList AS source + ON target.staffGroupId = source.staffGroupId + + WHEN MATCHED THEN + UPDATE SET + staffGroupName = source.staffGroupName + , displayOrder = source.displayOrder + , internalUsersOnly = source.internalUsersOnly + , deleted = source.deleted + , amendUserID = source.amendUserID + , amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + staffGroupId + , staffGroupName + , displayOrder + , internalUsersOnly + , deleted + , amendUserID + , amendDate + ) + VALUES ( + source.staffGroupId + , source.staffGroupName + , source.displayOrder + , source.internalUsersOnly + , source.deleted + , source.amendUserID + , source.amendDate + ); + SET IDENTITY_INSERT [elfh].[staffGroupTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergesystemSetting.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergesystemSetting.sql new file mode 100644 index 000000000..580e839fd --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergesystemSetting.sql @@ -0,0 +1,56 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergesystemSetting] + @systemSettingList dbo.SystemSetting READONLY -- Table-valued parameter +AS +BEGIN + SET NOCOUNT ON; + + MERGE [ELFH].[systemSettingTBL] AS target + USING @systemSettingList AS source + ON target.systemSettingId = source.systemSettingId + + WHEN MATCHED THEN + UPDATE SET + systemSettingName = source.systemSettingName, + intValue = source.intValue, + textValue = source.textValue, + booleanValue = source.booleanValue, + dateValue = source.dateValue, + deleted = source.deleted, + amendUserId = source.amendUserId, + amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + systemSettingId, + systemSettingName, + intValue, + textValue, + booleanValue, + dateValue, + deleted, + amendUserId, + amendDate + ) + VALUES ( + source.systemSettingId, + source.systemSettingName, + source.intValue, + source.textValue, + source.booleanValue, + source.dateValue, + source.deleted, + source.amendUserId, + source.amendDate + ); + +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergetenantSmtp.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergetenantSmtp.sql new file mode 100644 index 000000000..f6f44bc0e --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergetenantSmtp.sql @@ -0,0 +1,68 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergetenantSmtp] + @tenantSmtpList dbo.TenantSmtp READONLY -- Table-valued parameter +AS +BEGIN + SET NOCOUNT ON; + + MERGE [elfh].[tenantSmtpTBL] AS target + USING @tenantSmtpList AS source + ON target.tenantId = source.tenantId + + WHEN MATCHED THEN + UPDATE SET + deliveryMethod = source.deliveryMethod, + pickupDirectoryLocation = source.pickupDirectoryLocation, + [from] = source.[from], + userName = source.userName, + [password] = source.[password], + enableSsl = source.enableSsl, + host = source.host, + port = source.port, + active = source.active, + deleted = source.deleted, + amendUserId = source.amendUserId, + amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + tenantId, + deliveryMethod, + pickupDirectoryLocation, + [from], + userName, + [password], + enableSsl, + host, + port, + active, + deleted, + amendUserId, + amendDate + ) + VALUES ( + source.tenantId, + source.deliveryMethod, + source.pickupDirectoryLocation, + source.[from], + source.userName, + source.[password], + source.enableSsl, + source.host, + source.port, + source.active, + source.deleted, + source.amendUserId, + source.amendDate + ); + +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergetenants.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergetenants.sql new file mode 100644 index 000000000..4dc91fb59 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergetenants.sql @@ -0,0 +1,86 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergetenants] + @tenantList dbo.Tenant READONLY -- Table-valued parameter +AS +BEGIN + SET NOCOUNT ON; + + MERGE [elfh].[tenantTBL] AS target + USING @tenantList AS source + ON target.tenantId = source.tenantId + + WHEN MATCHED THEN + UPDATE SET + tenantCode = source.tenantCode, + tenantName = source.tenantName, + tenantDescription = source.tenantDescription, + showFullCatalogInfoMessageInd = source.showFullCatalogInfoMessageInd, + catalogUrl = source.catalogUrl, + quickStartGuideUrl = source.quickStartGuideUrl, + supportFormUrl = source.supportFormUrl, + liveChatStatus = source.liveChatStatus, + liveChatSnippet = source.liveChatSnippet, + myElearningDefaultView = source.myElearningDefaultView, + preLoginCatalogueDefaultView = source.preLoginCatalogueDefaultView, + postLoginCatalogueDefaultView = source.postLoginCatalogueDefaultView, + authSignInUrlRelative = source.authSignInUrlRelative, + authSignOutUrlRelative = source.authSignOutUrlRelative, + authSecret = source.authSecret, + deleted = source.deleted, + amendUserId = source.amendUserId, + amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + tenantId, + tenantCode, + tenantName, + tenantDescription, + showFullCatalogInfoMessageInd, + catalogUrl, + quickStartGuideUrl, + supportFormUrl, + liveChatStatus, + liveChatSnippet, + myElearningDefaultView, + preLoginCatalogueDefaultView, + postLoginCatalogueDefaultView, + authSignInUrlRelative, + authSignOutUrlRelative, + authSecret, + deleted, + amendUserId, + amendDate + ) + VALUES ( + source.tenantId, + source.tenantCode, + source.tenantName, + source.tenantDescription, + source.showFullCatalogInfoMessageInd, + source.catalogUrl, + source.quickStartGuideUrl, + source.supportFormUrl, + source.liveChatStatus, + source.liveChatSnippet, + source.myElearningDefaultView, + source.preLoginCatalogueDefaultView, + source.postLoginCatalogueDefaultView, + source.authSignInUrlRelative, + source.authSignOutUrlRelative, + source.authSecret, + source.deleted, + source.amendUserId, + source.amendDate + ); + +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergetenantsUrl.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergetenantsUrl.sql new file mode 100644 index 000000000..83408a426 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergetenantsUrl.sql @@ -0,0 +1,55 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergetenantsUrl] + @tenantUrlList dbo.TenantUrl READONLY -- Table-valued parameter +AS +BEGIN + SET NOCOUNT ON; + + -- Enable identity insert if tenantUrlId is an IDENTITY column + SET IDENTITY_INSERT [elfh].[tenantUrlTBL] ON; + + MERGE [elfh].[tenantUrlTBL] AS target + USING @tenantUrlList AS source + ON target.tenantUrlId = source.tenantUrlId + + WHEN MATCHED THEN + UPDATE SET + tenantId = source.tenantId, + urlHostName = source.urlHostName, + useHostForAuth = source.useHostForAuth, + deleted = source.deleted, + amendUserID = source.amendUserID, + amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + tenantUrlId, + tenantId, + urlHostName, + useHostForAuth, + deleted, + amendUserID, + amendDate + ) + VALUES ( + source.tenantUrlId, + source.tenantId, + source.urlHostName, + source.useHostForAuth, + source.deleted, + source.amendUserID, + source.amendDate + ); + + -- Disable identity insert + SET IDENTITY_INSERT [elfh].[tenantUrlTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergetermsAndConditions.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergetermsAndConditions.sql new file mode 100644 index 000000000..b01ba6b4a --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergetermsAndConditions.sql @@ -0,0 +1,64 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergetermsAndConditions] + @termsAndConditionsList dbo.TermsAndConditions READONLY -- Table-valued parameter +AS +BEGIN + SET NOCOUNT ON; + + -- Enable identity insert if termsAndConditionsId is an IDENTITY column + SET IDENTITY_INSERT [elfh].[termsAndConditionsTBL] ON; + + MERGE [elfh].[termsAndConditionsTBL] AS target + USING @termsAndConditionsList AS source + ON target.termsAndConditionsId = source.termsAndConditionsId + + WHEN MATCHED THEN + UPDATE SET + createdDate = source.createdDate, + description = source.description, + details = source.details, + tenantId = source.tenantId, + active = source.active, + reportable = source.reportable, + deleted = source.deleted, + amendUserID = source.amendUserID, + amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + termsAndConditionsId, + createdDate, + description, + details, + tenantId, + active, + reportable, + deleted, + amendUserID, + amendDate + ) + VALUES ( + source.termsAndConditionsId, + source.createdDate, + source.description, + source.details, + source.tenantId, + source.active, + source.reportable, + source.deleted, + source.amendUserID, + source.amendDate + ); + + -- Disable identity insert + SET IDENTITY_INSERT [elfh].[termsAndConditionsTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeuserEmployment.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeuserEmployment.sql new file mode 100644 index 000000000..7e4dc75e7 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeuserEmployment.sql @@ -0,0 +1,77 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeuserEmployment] + @userEmploymentList dbo.UserEmployment READONLY -- Table-valued parameter type +AS +BEGIN + SET NOCOUNT ON; + + SET IDENTITY_INSERT [elfh].[userEmploymentTBL] ON; + MERGE [elfh].[userEmploymentTBL] AS target + USING @userEmploymentList AS source + ON target.userEmploymentId = source.userEmploymentId + + WHEN MATCHED THEN + UPDATE SET + userId = source.userId, + jobRoleId = source.jobRoleId, + specialtyId = source.specialtyId, + gradeId = source.gradeId, + schoolId = source.schoolId, + locationId = source.locationId, + medicalCouncilId = source.medicalCouncilId, + medicalCouncilNo = source.medicalCouncilNo, + startDate = source.startDate, + endDate = source.endDate, + deleted = source.deleted, + archived = source.archived, + amendUserId = source.amendUserId, + amendDate = source.amendDate + + WHEN NOT MATCHED THEN + INSERT ( + userEmploymentId, + userId, + jobRoleId, + specialtyId, + gradeId, + schoolId, + locationId, + medicalCouncilId, + medicalCouncilNo, + startDate, + endDate, + deleted, + archived, + amendUserId, + amendDate + ) + VALUES ( + source.userEmploymentId, + source.userId, + source.jobRoleId, + source.specialtyId, + source.gradeId, + source.schoolId, + source.locationId, + source.medicalCouncilId, + source.medicalCouncilNo, + source.startDate, + source.endDate, + source.deleted, + source.archived, + source.amendUserId, + source.amendDate + ); + + -- Disable identity insert + SET IDENTITY_INSERT [elfh].[userEmploymentTBL] OFF; +END +GO diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeuserTermsAndConditions.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeuserTermsAndConditions.sql new file mode 100644 index 000000000..946e1bbb1 --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Adf/AdfMergeuserTermsAndConditions.sql @@ -0,0 +1,54 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 04-11-2025 +-- Purpose ELFH-LH Data sync +-- +-- Modification History +-- +-- 04-11-2025 Sarathlal Initial Revision +------------------------------------------------------------------------------- +CREATE PROCEDURE [dbo].[AdfMergeUserTermsAndConditions] + @userTermsAndConditionsList dbo.UserTermsAndConditions READONLY +AS +BEGIN + SET NOCOUNT ON; + + -- Enable identity insert if userTermsAndConditionsId is an IDENTITY column + SET IDENTITY_INSERT [elfh].[userTermsAndConditionsTBL] ON; + MERGE [elfh].[userTermsAndConditionsTBL] AS target + USING @userTermsAndConditionsList AS source + ON target.[userTermsAndConditionsId] = source.[userTermsAndConditionsId] + + WHEN MATCHED THEN + UPDATE SET + [termsAndConditionsId] = source.[termsAndConditionsId], + [userId] = source.[userId], + [acceptanceDate] = source.[acceptanceDate], + [deleted] = source.[deleted], + [amendUserID] = source.[amendUserID], + [amendDate] = source.[amendDate] + + WHEN NOT MATCHED THEN + INSERT ( + [userTermsAndConditionsId], + [termsAndConditionsId], + [userId], + [acceptanceDate], + [deleted], + [amendUserID], + [amendDate] + ) + VALUES ( + source.[userTermsAndConditionsId], + source.[termsAndConditionsId], + source.[userId], + source.[acceptanceDate], + source.[deleted], + source.[amendUserID], + source.[amendDate] + ); + + -- Disable identity insert + SET IDENTITY_INSERT [elfh].[userTermsAndConditionsTBL] OFF; +END +GO