Skip to content

Commit 7a9a616

Browse files
DB changes included and corrected the typo in the class
1 parent 63d6771 commit 7a9a616

File tree

6 files changed

+146
-12
lines changed

6 files changed

+146
-12
lines changed

LearningHub.Nhs.WebUI/Helpers/ViewActivityHelper.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public static string GetResourceTypeDesc(ResourceTypeEnum resourceType)
128128
/// </summary>
129129
/// <param name="activity">The activity.</param>
130130
/// <returns>The string.</returns>
131-
public static string GetActivityStatusDisplayText(MyLearningCombainedActivitiesViewModel activity)
131+
public static string GetActivityStatusDisplayText(MyLearningCombinedActivitiesViewModel activity)
132132
{
133133
if (activity.ActivityStatus == ActivityStatusEnum.Completed || activity.ActivityStatus == ActivityStatusEnum.Passed || activity.ActivityStatus == ActivityStatusEnum.Passed || activity.ActivityStatus == ActivityStatusEnum.Viewed || activity.ActivityStatus == ActivityStatusEnum.Downloaded)
134134
{
@@ -145,7 +145,7 @@ public static string GetActivityStatusDisplayText(MyLearningCombainedActivitiesV
145145
/// </summary>
146146
/// <param name="activitiesViewModel">The activityDetailedItemViewModel.</param>
147147
/// <returns>The <see cref="bool"/>bool.</returns>
148-
public static bool CanCertificateawarded(this MyLearningCombainedActivitiesViewModel activitiesViewModel)
148+
public static bool CanCertificateawarded(this MyLearningCombinedActivitiesViewModel activitiesViewModel)
149149
{
150150
if (activitiesViewModel.CertificateEnabled == true)
151151
{

LearningHub.Nhs.WebUI/Models/MyLearningUserActivitiesViewModel.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class MyLearningUserActivitiesViewModel : MyLearningRequestModel
2323
/// </summary>
2424
public MyLearningUserActivitiesViewModel()
2525
{
26-
this.Activities = new List<MyLearningCombainedActivitiesViewModel>();
26+
this.Activities = new List<MyLearningCombinedActivitiesViewModel>();
2727
}
2828

2929
/// <summary>
@@ -32,7 +32,7 @@ public MyLearningUserActivitiesViewModel()
3232
/// <param name="requestModel">MyLearningRequestModel.</param>
3333
public MyLearningUserActivitiesViewModel(MyLearningRequestModel requestModel)
3434
{
35-
this.Activities = new List<MyLearningCombainedActivitiesViewModel>();
35+
this.Activities = new List<MyLearningCombinedActivitiesViewModel>();
3636
foreach (PropertyInfo prop in requestModel.GetType().GetProperties())
3737
{
3838
this.GetType().GetProperty(prop.Name).SetValue(this, prop.GetValue(requestModel, null), null);
@@ -62,7 +62,7 @@ public MyLearningUserActivitiesViewModel(MyLearningRequestModel requestModel)
6262
/// <summary>
6363
/// Gets or sets the Activities.
6464
/// </summary>
65-
public List<MyLearningCombainedActivitiesViewModel> Activities { get; set; }
65+
public List<MyLearningCombinedActivitiesViewModel> Activities { get; set; }
6666

6767
/// <summary>
6868
/// Gets or sets the learning result paging.

OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MyLearningService.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public async Task<MyLearningActivitiesDetailedViewModel> GetUserRecentMyLearning
148148

149149
var entrolledCourses = await this.moodleApiService.GetRecentEnrolledCoursesAsync(userId, 6);
150150

151-
var mappedMyLearningActivities = result.Select(Activity => new MyLearningCombainedActivitiesViewModel
151+
var mappedMyLearningActivities = result.Select(Activity => new MyLearningCombinedActivitiesViewModel
152152
{
153153
UserId = userId,
154154
ResourceId = Activity.ResourceId,
@@ -167,7 +167,7 @@ public async Task<MyLearningActivitiesDetailedViewModel> GetUserRecentMyLearning
167167
CompletedActivities = 0,
168168
}).ToList();
169169

170-
var mappedEnrolledCourses = entrolledCourses.Select(course => new MyLearningCombainedActivitiesViewModel
170+
var mappedEnrolledCourses = entrolledCourses.Select(course => new MyLearningCombinedActivitiesViewModel
171171
{
172172
UserId = userId,
173173
ResourceId = (int)course.Id,
@@ -229,13 +229,13 @@ public async Task<MyLearningActivitiesDetailedViewModel> GetUserLearningHistoryA
229229

230230
var entrolledCourses = await this.moodleApiService.GetRecentEnrolledCoursesAsync(userId);
231231

232-
List<MyLearningCombainedActivitiesViewModel> mappedMyLearningActivities = new();
233-
List<MyLearningCombainedActivitiesViewModel> mappedEnrolledCourses = new();
234-
List<MyLearningCombainedActivitiesViewModel> combainedUserActivities = new();
232+
List<MyLearningCombinedActivitiesViewModel> mappedMyLearningActivities = new();
233+
List<MyLearningCombinedActivitiesViewModel> mappedEnrolledCourses = new();
234+
List<MyLearningCombinedActivitiesViewModel> combainedUserActivities = new();
235235

236236
if (result != null)
237237
{
238-
mappedMyLearningActivities = result.Select(activity => new MyLearningCombainedActivitiesViewModel
238+
mappedMyLearningActivities = result.Select(activity => new MyLearningCombinedActivitiesViewModel
239239
{
240240
UserId = userId,
241241
ResourceId = activity.ResourceId,
@@ -257,7 +257,7 @@ public async Task<MyLearningActivitiesDetailedViewModel> GetUserLearningHistoryA
257257

258258
if (entrolledCourses != null)
259259
{
260-
mappedEnrolledCourses = entrolledCourses.Select(course => new MyLearningCombainedActivitiesViewModel
260+
mappedEnrolledCourses = entrolledCourses.Select(course => new MyLearningCombinedActivitiesViewModel
261261
{
262262
UserId = userId,
263263
ResourceId = (int)course.Id,

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,6 +539,8 @@
539539
<Build Include="Stored Procedures\Activity\GetAssessmentActivityCompletionPercentage.sql" />
540540
<Build Include="Tables\Hub\PasswordResetRequests.sql" />
541541
<Build Include="Stored Procedures\External\ExternalSystemUserCreate.sql" />
542+
<Build Include="Stored Procedures\Activity\GetUserRecentLearningActivities.sql" />
543+
<Build Include="Stored Procedures\Activity\GetUsersLearningHistory.sql" />
542544
</ItemGroup>
543545
<ItemGroup>
544546
<None Include="Scripts\Pre-Deploy\Scripts\Card5766_AuthorTableChanges.PreDeployment.sql" />
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 29-07-2025
4+
-- Purpose Get Users recent learning acrtivities
5+
--
6+
-- Modification History
7+
-------------------------------------------------------------------------------
8+
ALTER PROCEDURE [activity].[GetUserRecentLearningActivities] (
9+
@userId INT
10+
)
11+
AS
12+
BEGIN
13+
14+
WITH CTERecentActivities AS (
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+
CASE WHEN r.CurrentResourceVersionId = ra.ResourceVersionId THEN 1 ELSE 0 END 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+
arv.AssessmentType AS AssessmentType,
39+
arv.PassMark AS PassMark,
40+
asra.score AS AssesmentScore,
41+
mar.SecondsPlayed AS SecondsPlayed,
42+
mar.PercentComplete AS PercentComplete,
43+
sa.CmiCoreLesson_status AS CmiCoreLessonstatus,
44+
sa.CmiCoreScoreMax AS CmiCoreScoreMax,
45+
sa.CmiCoreSession_time AS CmiCoreSessiontime,
46+
sa.DurationSeconds AS DurationSeconds,
47+
ROW_NUMBER() OVER (PARTITION BY ra.ResourceId ORDER BY ISNULL(ara.ActivityEnd, ra.ActivityStart) DESC) AS rn
48+
FROM activity.ResourceActivity ra
49+
LEFT JOIN activity.ResourceActivity ara ON ara.LaunchResourceActivityId = ra.Id
50+
INNER JOIN [resources].[Resource] r ON ra.ResourceId = r.Id
51+
INNER JOIN [resources].[ResourceVersion] rv ON rv.Id = ra.ResourceVersionId AND rv.Deleted = 0
52+
LEFT JOIN [resources].[ResourceVersionProvider] rvp on rv.Id = rvp.ResourceVersionId
53+
LEFT JOIN [resources].[AssessmentResourceVersion] arv ON arv.ResourceVersionId = ra.ResourceVersionId
54+
LEFT JOIN [activity].[AssessmentResourceActivity] asra ON asra.ResourceActivityId = ra.Id
55+
LEFT JOIN [activity].[MediaResourceActivity] mar ON mar.ResourceActivityId = ra.Id
56+
LEFT JOIN [activity].[ScormActivity] sa ON sa.ResourceActivityId = ra.Id
57+
WHERE ra.LaunchResourceActivityId IS NULL AND ra.userid = @userId
58+
AND ra.deleted = 0
59+
AND r.ResourceTypeId IN(2,6,7,10,11) AND ra.ActivityStart >= DATEADD(MONTH, -6, SYSDATETIMEOFFSET())
60+
)
61+
SELECT ActivityId,
62+
LaunchResourceActivityId,
63+
UserId,
64+
ResourceId,
65+
ResourceVersionId,
66+
CAST(IsCurrentResourceVersion AS BIT) AS IsCurrentResourceVersion,
67+
ResourceReferenceId,
68+
MajorVersion,
69+
MinorVersion,
70+
NodePathId,
71+
ResourceType,
72+
Title,
73+
CertificateEnabled,
74+
ProviderId,
75+
ActivityStatus,
76+
ActivityDate,
77+
ActivityDurationSeconds,
78+
ScorePercentage
79+
FROM CTERecentActivities
80+
WHERE rn = 1 order by ActivityDate desc;
81+
82+
END
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
-------------------------------------------------------------------------------
2+
-- Author Swapnamol Abraham
3+
-- Created 08-08-2025
4+
-- Purpose Get Users learning history
5+
--
6+
-- Modification History
7+
-------------------------------------------------------------------------------
8+
ALTER PROCEDURE [activity].[GetUsersLearningHistory] (
9+
@userId INT
10+
)
11+
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+
50+
END

0 commit comments

Comments
 (0)