Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.sqlproj
Original file line number Diff line number Diff line change
Expand Up @@ -644,6 +644,49 @@
<Build Include="Stored Procedures\Elfh\GetUserByOpenAthensId.sql" />
<Build Include="Tables\Hierarchy\CatalogueNodeVersionCategory.sql" />
<Build Include="Stored Procedures\Hierarchy\CatalogueNodeVersionCategoryCreate.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeattribute.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeattributeType.sql" />
<Build Include="Stored Procedures\Adf\AdfMergecountry.sql" />
<Build Include="Stored Procedures\Adf\AdfMergedeanery.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeEmailTemplate.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeemailTemplateType.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeEmploymentReferenceType.sql" />
<Build Include="Stored Procedures\Adf\AdfMergegdcRegister.sql" />
<Build Include="Stored Procedures\Adf\AdfMergegmclrmp.sql" />
<Build Include="Stored Procedures\Adf\AdfMergegrade.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeHubUser.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeipCountryLookup.sql" />
<Build Include="Stored Procedures\Adf\AdfMergejobRole.sql" />
<Build Include="Stored Procedures\Adf\AdfMergelocation.sql" />
<Build Include="Stored Procedures\Adf\AdfMergelocationType.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeloginWizardRule.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeloginWizardStage.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeloginWizardStageActivity.sql" />
<Build Include="Stored Procedures\Adf\AdfMergemedicalCouncil.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeMergeUser.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeregion.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeschool.sql" />
<Build Include="Stored Procedures\Adf\AdfMergespecialty.sql" />
<Build Include="Stored Procedures\Adf\AdfMergestaffGroup.sql" />
<Build Include="Stored Procedures\Adf\AdfMergesystemSetting.sql" />
<Build Include="Stored Procedures\Adf\AdfMergetenants.sql" />
<Build Include="Stored Procedures\Adf\AdfMergetenantSmtp.sql" />
<Build Include="Stored Procedures\Adf\AdfMergetenantsUrl.sql" />
<Build Include="Stored Procedures\Adf\AdfMergetermsAndConditions.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeUserAdminLocation.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeUserAttribute.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeuserEmployment.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeUserEmploymentReference.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeUserEmploymentResponsibility.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeUserGroupTypeInputValidation.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeUserHistory.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeUserHistoryAttribute.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeUserHistoryType.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeUserPasswordValidationToke.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeUserProfileData.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeUserReportingUser.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeUserRoleUpgrade.sql" />
<Build Include="Stored Procedures\Adf\AdfMergeuserTermsAndConditions.sql" />
<Build Include="Stored Procedures\Hierarchy\RemoveCatalogueCategory.sql" />
</ItemGroup>
<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Loading
Loading