66-- Modification History
77-- -----------------------------------------------------------------------------
88CREATE PROCEDURE [activity].[GetUsersLearningHistory] (
9- @userId INT
9+ @userId INT ,
10+ @activityStatuses varchar (50 ) = NULL ,
11+ @resourceTypes varchar (50 ) = NULL
1012 )
1113AS
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
5063END
0 commit comments