Skip to content

Commit 85c1a42

Browse files
My Learning page resign - SP changes
1 parent 26100fe commit 85c1a42

File tree

4 files changed

+146
-40
lines changed

4 files changed

+146
-40
lines changed

WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.sqlproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,7 @@
541541
<Build Include="Stored Procedures\External\ExternalSystemUserCreate.sql" />
542542
<Build Include="Stored Procedures\Activity\GetUserRecentLearningActivities.sql" />
543543
<Build Include="Stored Procedures\Activity\GetUsersLearningHistory.sql" />
544+
<Build Include="Stored Procedures\Activity\GetUsersLearningHistory_Search.sql" />
544545
</ItemGroup>
545546
<ItemGroup>
546547
<None Include="Scripts\Pre-Deploy\Scripts\Card5766_AuthorTableChanges.PreDeployment.sql" />

WebAPI/LearningHub.Nhs.Database/Stored Procedures/Activity/GetUserRecentLearningActivities.sql

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
-- Modification History
77
-------------------------------------------------------------------------------
88
CREATE PROCEDURE [activity].[GetUserRecentLearningActivities] (
9-
@userId INT
9+
@userId INT,
10+
@activityStatuses varchar(50) = NULL
1011
)
1112
AS
1213
BEGIN
@@ -29,10 +30,12 @@ BEGIN
2930
ra.NodePathId AS NodePathId,
3031
r.ResourceTypeId AS ResourceType,
3132
rv.Title AS Title,
33+
--rv.[Description] AS ResourceDescription,
3234
rv.CertificateEnabled AS CertificateEnabled,
3335
rvp.ProviderId AS ProviderId,
3436
ISNULL(ara.ActivityStatusId, ra.ActivityStatusId) AS ActivityStatus,
3537
ra.ActivityStart AS ActivityDate,
38+
-- ara.ActivityEnd,
3639
ISNULL(ara.DurationSeconds, 0) AS ActivityDurationSeconds,
3740
ara.Score AS ScorePercentage,
3841
arv.AssessmentType AS AssessmentType,
@@ -57,6 +60,13 @@ BEGIN
5760
WHERE ra.LaunchResourceActivityId IS NULL AND ra.userid = @userId
5861
AND ra.deleted = 0
5962
AND r.ResourceTypeId IN(2,6,7,10,11) AND ra.ActivityStart >= DATEADD(MONTH, -6, SYSDATETIMEOFFSET())
63+
AND (
64+
@activityStatuses IS NULL OR
65+
ISNULL(ara.ActivityStatusId, ra.ActivityStatusId) IN (
66+
SELECT TRY_CAST(value AS INT)
67+
FROM STRING_SPLIT(@activityStatuses, ',')
68+
WHERE TRY_CAST(value AS INT) IS NOT NULL)
69+
)
6070
)
6171
SELECT ActivityId,
6272
LaunchResourceActivityId,

WebAPI/LearningHub.Nhs.Database/Stored Procedures/Activity/GetUsersLearningHistory.sql

Lines changed: 52 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -6,45 +6,58 @@
66
-- Modification History
77
-------------------------------------------------------------------------------
88
CREATE PROCEDURE [activity].[GetUsersLearningHistory] (
9-
@userId INT
9+
@userId INT,
10+
@activityStatuses varchar(50) = NULL,
11+
@resourceTypes varchar(50) = NULL
1012
)
1113
AS
12-
BEGIN
13-
14-
SELECT
15-
ra.Id AS ActivityId,
16-
ara.LaunchResourceActivityId AS LaunchResourceActivityId,
17-
ra.UserId AS UserId,
18-
ra.ResourceId AS ResourceId,
19-
r.CurrentResourceVersionId AS ResourceVersionId,
20-
CAST(CASE WHEN r.CurrentResourceVersionId = ra.ResourceVersionId THEN 1 ELSE 0 END AS BIT) AS IsCurrentResourceVersion,
21-
(
22-
SELECT TOP 1 rr.OriginalResourceReferenceId
23-
FROM [resources].[ResourceReference] rr
24-
WHERE rr.ResourceId = rv.ResourceId AND rr.Deleted = 0
25-
) AS ResourceReferenceId,
26-
ra.MajorVersion AS MajorVersion,
27-
ra.MinorVersion AS MinorVersion,
28-
ra.NodePathId AS NodePathId,
29-
r.ResourceTypeId AS ResourceType,
30-
rv.Title AS Title,
31-
rv.CertificateEnabled AS CertificateEnabled,
32-
rvp.ProviderId AS ProviderId,
33-
ISNULL(ara.ActivityStatusId, ra.ActivityStatusId) AS ActivityStatus,
34-
ra.ActivityStart AS ActivityDate,
35-
ISNULL(ara.DurationSeconds, 0) AS ActivityDurationSeconds,
36-
ara.Score AS ScorePercentage
37-
FROM activity.ResourceActivity ra
38-
LEFT JOIN activity.ResourceActivity ara
39-
ON ara.LaunchResourceActivityId = ra.Id
40-
INNER JOIN [resources].[Resource] r ON ra.ResourceId = r.Id
41-
INNER JOIN [resources].[ResourceVersion] rv ON rv.Id = ra.ResourceVersionId AND rv.deleted =0
42-
LEFT JOIN [resources].[ResourceVersionProvider] rvp on rv.Id = rvp.ResourceVersionId
43-
LEFT JOIN [resources].[AssessmentResourceVersion] arv ON arv.ResourceVersionId = ra.ResourceVersionId
44-
LEFT JOIN [activity].[AssessmentResourceActivity] asra ON asra.ResourceActivityId = ra.Id
45-
LEFT JOIN [activity].[MediaResourceActivity] mar ON mar.ResourceActivityId = ra.Id
46-
LEFT JOIN [activity].[ScormActivity] sa ON sa.ResourceActivityId = ra.Id
47-
WHERE ra.LaunchResourceActivityId IS NULL and ra.userid = @userId AND ra.deleted = 0
48-
ORDER BY ra.Id asc
49-
14+
BEGIN
15+
SELECT
16+
ra.Id AS ActivityId,
17+
ara.LaunchResourceActivityId AS LaunchResourceActivityId,
18+
ra.UserId AS UserId,
19+
ra.ResourceId AS ResourceId,
20+
r.CurrentResourceVersionId AS ResourceVersionId,
21+
CAST(CASE WHEN r.CurrentResourceVersionId = ra.ResourceVersionId THEN 1 ELSE 0 END AS BIT) AS IsCurrentResourceVersion,
22+
(
23+
SELECT TOP 1 rr.OriginalResourceReferenceId
24+
FROM [resources].[ResourceReference] rr
25+
WHERE rr.ResourceId = rv.ResourceId AND rr.Deleted = 0
26+
) AS ResourceReferenceId,
27+
ra.MajorVersion AS MajorVersion,
28+
ra.MinorVersion AS MinorVersion,
29+
ra.NodePathId AS NodePathId,
30+
r.ResourceTypeId AS ResourceType,
31+
rv.Title AS Title,
32+
rv.CertificateEnabled AS CertificateEnabled,
33+
rvp.ProviderId AS ProviderId,
34+
ISNULL(ara.ActivityStatusId, ra.ActivityStatusId) AS ActivityStatus,
35+
ra.ActivityStart AS ActivityDate,
36+
ISNULL(ara.DurationSeconds, 0) AS ActivityDurationSeconds,
37+
ara.Score AS ScorePercentage
38+
FROM activity.ResourceActivity ra
39+
LEFT JOIN activity.ResourceActivity ara
40+
ON ara.LaunchResourceActivityId = ra.Id
41+
INNER JOIN [resources].[Resource] r ON ra.ResourceId = r.Id
42+
INNER JOIN [resources].[ResourceVersion] rv ON rv.Id = ra.ResourceVersionId AND rv.deleted =0
43+
LEFT JOIN [resources].[ResourceVersionProvider] rvp on rv.Id = rvp.ResourceVersionId
44+
LEFT JOIN [resources].[AssessmentResourceVersion] arv ON arv.ResourceVersionId = ra.ResourceVersionId
45+
LEFT JOIN [activity].[AssessmentResourceActivity] asra ON asra.ResourceActivityId = ra.Id
46+
LEFT JOIN [activity].[MediaResourceActivity] mar ON mar.ResourceActivityId = ra.Id
47+
LEFT JOIN [activity].[ScormActivity] sa ON sa.ResourceActivityId = ra.Id
48+
WHERE ra.LaunchResourceActivityId IS NULL and ra.userid = @userId AND ra.deleted = 0
49+
AND (
50+
@activityStatuses IS NULL OR
51+
ISNULL(ara.ActivityStatusId, ra.ActivityStatusId) IN (
52+
SELECT TRY_CAST(value AS INT)
53+
FROM STRING_SPLIT(@activityStatuses, ',')
54+
WHERE TRY_CAST(value AS INT) IS NOT NULL)
55+
)
56+
AND (
57+
@resourceTypes IS NULL OR
58+
r.ResourceTypeId IN (
59+
SELECT value
60+
FROM STRING_SPLIT(@resourceTypes, ','))
61+
)
62+
ORDER BY ra.Id asc
5063
END
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
-------------------------------------------------------------------------------
2+
-- Author Swapnamol Abraham
3+
-- Created 08-08-2025
4+
-- Purpose Get Users learning history Search
5+
--
6+
-- Modification History
7+
-------------------------------------------------------------------------------
8+
CREATE PROCEDURE [activity].[GetUsersLearningHistory_Search] (
9+
@userId INT,
10+
@searchText nvarchar(255),
11+
@activityStatuses varchar(50) = NULL,
12+
@resourceTypes varchar(50) = NULL
13+
)
14+
AS
15+
BEGIN
16+
17+
18+
SELECT
19+
ra.Id AS ActivityId,
20+
ara.LaunchResourceActivityId AS LaunchResourceActivityId,
21+
ra.UserId AS UserId,
22+
ra.ResourceId AS ResourceId,
23+
r.CurrentResourceVersionId AS ResourceVersionId,
24+
CAST(CASE WHEN r.CurrentResourceVersionId = ra.ResourceVersionId THEN 1 ELSE 0 END AS BIT) AS IsCurrentResourceVersion,
25+
(
26+
SELECT TOP 1 rr.OriginalResourceReferenceId
27+
FROM [resources].[ResourceReference] rr
28+
WHERE rr.ResourceId = rv.ResourceId AND rr.Deleted = 0
29+
) AS ResourceReferenceId,
30+
ra.MajorVersion AS MajorVersion,
31+
ra.MinorVersion AS MinorVersion,
32+
ra.NodePathId AS NodePathId,
33+
r.ResourceTypeId AS ResourceType,
34+
rv.Title AS Title,
35+
rv.CertificateEnabled AS CertificateEnabled,
36+
rvp.ProviderId AS ProviderId,
37+
ISNULL(ara.ActivityStatusId, ra.ActivityStatusId) AS ActivityStatus,
38+
ra.ActivityStart AS ActivityDate,
39+
ISNULL(ara.DurationSeconds, 0) AS ActivityDurationSeconds,
40+
ara.Score AS ScorePercentage
41+
FROM activity.ResourceActivity ra
42+
LEFT JOIN activity.ResourceActivity ara
43+
ON ara.LaunchResourceActivityId = ra.Id
44+
INNER JOIN [resources].[Resource] r ON ra.ResourceId = r.Id
45+
INNER JOIN [resources].[ResourceVersion] rv ON rv.Id = ra.ResourceVersionId AND rv.deleted =0
46+
LEFT JOIN [resources].[ResourceVersionProvider] rvp on rv.Id = rvp.ResourceVersionId
47+
LEFT JOIN [resources].[AssessmentResourceVersion] arv ON arv.ResourceVersionId = ra.ResourceVersionId
48+
LEFT JOIN [activity].[AssessmentResourceActivity] asra ON asra.ResourceActivityId = ra.Id
49+
LEFT JOIN [activity].[MediaResourceActivity] mar ON mar.ResourceActivityId = ra.Id
50+
LEFT JOIN [activity].[ScormActivity] sa ON sa.ResourceActivityId = ra.Id
51+
WHERE ra.LaunchResourceActivityId IS NULL and ra.userid = @userId AND ra.deleted = 0
52+
AND
53+
(
54+
CHARINDEX(@searchText, rv.[Title]) > 0
55+
OR CHARINDEX(@searchText, rv.[Description]) > 0
56+
OR EXISTS (
57+
SELECT 1
58+
FROM [resources].[ResourceVersionKeyword] AS [ResourceVersionKeyword]
59+
WHERE
60+
[ResourceVersionKeyword].[Deleted] = 0
61+
AND rv.[Id] = [ResourceVersionKeyword].[ResourceVersionId]
62+
AND CHARINDEX(@searchText, [ResourceVersionKeyword].[Keyword]) > 0
63+
)
64+
)
65+
AND (
66+
@activityStatuses IS NULL OR
67+
ISNULL(ara.ActivityStatusId, ra.ActivityStatusId) IN (
68+
SELECT TRY_CAST(value AS INT)
69+
FROM STRING_SPLIT(@activityStatuses, ',')
70+
WHERE TRY_CAST(value AS INT) IS NOT NULL
71+
)
72+
)
73+
AND (
74+
@resourceTypes IS NULL OR
75+
r.ResourceTypeId IN (
76+
SELECT value
77+
FROM STRING_SPLIT(@resourceTypes, ',')
78+
)
79+
)
80+
ORDER BY ra.Id ASC;
81+
82+
END

0 commit comments

Comments
 (0)