Skip to content

Commit 80a759e

Browse files
committed
Fixed the issue with ESR link for the resources not loading for first launch
1 parent 4f464a8 commit 80a759e

File tree

5 files changed

+88
-89
lines changed

5 files changed

+88
-89
lines changed

WebAPI/LearningHub.Nhs.API/Controllers/ContentServerController.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ public ContentServerController(
4545
/// <returns>The <see cref="IActionResult"/>.</returns>
4646
[HttpPost]
4747
[Route("GetContentDetailsByExternalUrl")]
48-
public async Task<IActionResult> GetContentDetailsByExternalUrl([FromBody] string externalUrl)
48+
public IActionResult GetContentDetailsByExternalUrl([FromBody] string externalUrl)
4949
{
5050
string decodedUrl = HttpUtility.UrlDecode(externalUrl);
5151

52-
var details = await this.scormContentServerService.GetContentDetailsByExternalUrl(decodedUrl);
52+
var details = this.scormContentServerService.GetContentDetailsByExternalUrl(decodedUrl);
5353

5454
return this.Ok(details);
5555
}
@@ -61,9 +61,9 @@ public async Task<IActionResult> GetContentDetailsByExternalUrl([FromBody] strin
6161
/// <returns>The <see cref="IActionResult"/>.</returns>
6262
[HttpGet]
6363
[Route("GetContentDetailsByExternalReference/{externalReference}")]
64-
public async Task<IActionResult> GetContentDetailsByExternalReference(string externalReference)
64+
public IActionResult GetContentDetailsByExternalReference(string externalReference)
6565
{
66-
var details = await this.scormContentServerService.GetContentDetailsByExternalReference(externalReference);
66+
var details = this.scormContentServerService.GetContentDetailsByExternalReference(externalReference);
6767

6868
return this.Ok(details);
6969
}

WebAPI/LearningHub.Nhs.Repository.Interface/Resources/IScormResourceVersionRepository.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ public interface IScormResourceVersionRepository : IGenericRepository<ScormResou
3030
/// </summary>
3131
/// <param name="externalReference">The external reference (guid).</param>
3232
/// <returns>A ContentServerViewModel.</returns>
33-
Task<ContentServerViewModel> GetContentServerDetailsByLHExternalReference(string externalReference);
33+
ContentServerViewModel GetContentServerDetailsByLHExternalReference(string externalReference);
3434

3535
/// <summary>
3636
/// Gets the SCORM content details for a particular historic external URL. These historic URLs have to be supported to
3737
/// allow historic ESR links on migrated resources to continue to work.
3838
/// </summary>
3939
/// <param name="externalUrl">The external Url.</param>
4040
/// <returns>A ContentServerViewModel.</returns>
41-
Task<ContentServerViewModel> GetScormContentServerDetailsByHistoricExternalUrl(string externalUrl);
41+
ContentServerViewModel GetScormContentServerDetailsByHistoricExternalUrl(string externalUrl);
4242

4343
/// <summary>
4444
/// GetExternalReferenceByResourceId.
Lines changed: 76 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,92 @@
11
namespace LearningHub.Nhs.Repository.Resources
22
{
3-
using System.Collections.Generic;
4-
using System.Data;
5-
using System.Linq;
6-
using System.Threading.Tasks;
7-
using LearningHub.Nhs.Models.Entities.Resource;
8-
using LearningHub.Nhs.Models.Resource;
9-
using LearningHub.Nhs.Repository.Interface;
10-
using LearningHub.Nhs.Repository.Interface.Resources;
11-
using Microsoft.Data.SqlClient;
12-
using Microsoft.EntityFrameworkCore;
3+
using System.Collections.Generic;
4+
using System.Data;
5+
using System.Linq;
6+
using System.Threading.Tasks;
7+
using LearningHub.Nhs.Models.Entities.Resource;
8+
using LearningHub.Nhs.Models.Resource;
9+
using LearningHub.Nhs.Repository.Interface;
10+
using LearningHub.Nhs.Repository.Interface.Resources;
11+
using Microsoft.Data.SqlClient;
12+
using Microsoft.EntityFrameworkCore;
1313

14+
/// <summary>
15+
/// The Scorm resource version repository.
16+
/// </summary>
17+
public class ScormResourceVersionRepository : GenericRepository<ScormResourceVersion>, IScormResourceVersionRepository
18+
{
1419
/// <summary>
15-
/// The Scorm resource version repository.
20+
/// Initializes a new instance of the <see cref="ScormResourceVersionRepository"/> class.
1621
/// </summary>
17-
public class ScormResourceVersionRepository : GenericRepository<ScormResourceVersion>, IScormResourceVersionRepository
22+
/// <param name="dbContext">The db context.</param>
23+
/// <param name="tzOffsetManager">The Timezone offset manager.</param>
24+
public ScormResourceVersionRepository(LearningHubDbContext dbContext, ITimezoneOffsetManager tzOffsetManager)
25+
: base(dbContext, tzOffsetManager)
1826
{
19-
/// <summary>
20-
/// Initializes a new instance of the <see cref="ScormResourceVersionRepository"/> class.
21-
/// </summary>
22-
/// <param name="dbContext">The db context.</param>
23-
/// <param name="tzOffsetManager">The Timezone offset manager.</param>
24-
public ScormResourceVersionRepository(LearningHubDbContext dbContext, ITimezoneOffsetManager tzOffsetManager)
25-
: base(dbContext, tzOffsetManager)
26-
{
27-
}
27+
}
2828

29-
/// <summary>
30-
/// The get by id async.
31-
/// </summary>
32-
/// <param name="id">The id.</param>
33-
/// <returns>The <see cref="Task"/>.</returns>
34-
public async Task<ScormResourceVersion> GetByIdAsync(int id)
35-
{
36-
return await this.DbContext.ScormResourceVersion.AsNoTracking().FirstOrDefaultAsync(r => r.Id == id && !r.Deleted);
37-
}
29+
/// <summary>
30+
/// The get by id async.
31+
/// </summary>
32+
/// <param name="id">The id.</param>
33+
/// <returns>The <see cref="Task"/>.</returns>
34+
public async Task<ScormResourceVersion> GetByIdAsync(int id)
35+
{
36+
return await this.DbContext.ScormResourceVersion.AsNoTracking().FirstOrDefaultAsync(r => r.Id == id && !r.Deleted);
37+
}
3838

39-
/// <summary>
40-
/// The get by resource version id async.
41-
/// </summary>
42-
/// <param name="resourceVersionId">The resource versionid.</param>
43-
/// <param name="includeDeleted">Allows deleted items to be returned.</param>
44-
/// <returns>The <see cref="Task"/>.</returns>
45-
public async Task<ScormResourceVersion> GetByResourceVersionIdAsync(int resourceVersionId, bool includeDeleted = false)
46-
{
47-
return await this.DbContext.ScormResourceVersion
48-
.Include(r => r.File)
49-
.Include(r => r.ScormResourceVersionManifest)
50-
.AsNoTracking().FirstOrDefaultAsync(r => r.ResourceVersionId == resourceVersionId && (includeDeleted || !r.Deleted));
51-
}
39+
/// <summary>
40+
/// The get by resource version id async.
41+
/// </summary>
42+
/// <param name="resourceVersionId">The resource versionid.</param>
43+
/// <param name="includeDeleted">Allows deleted items to be returned.</param>
44+
/// <returns>The <see cref="Task"/>.</returns>
45+
public async Task<ScormResourceVersion> GetByResourceVersionIdAsync(int resourceVersionId, bool includeDeleted = false)
46+
{
47+
return await this.DbContext.ScormResourceVersion
48+
.Include(r => r.File)
49+
.Include(r => r.ScormResourceVersionManifest)
50+
.AsNoTracking().FirstOrDefaultAsync(r => r.ResourceVersionId == resourceVersionId && (includeDeleted || !r.Deleted));
51+
}
5252

53-
/// <summary>
54-
/// Gets the SCORM content details for a particular Learning Hub external reference (guid).
55-
/// </summary>
56-
/// <param name="externalReference">The external reference (guid).</param>
57-
/// <returns>A ContentServerViewModel.</returns>
58-
public async Task<ContentServerViewModel> GetContentServerDetailsByLHExternalReference(string externalReference)
59-
{
60-
var param0 = new SqlParameter("@externalReference", SqlDbType.NVarChar) { Value = externalReference };
53+
/// <summary>
54+
/// Gets the SCORM content details for a particular Learning Hub external reference (guid).
55+
/// </summary>
56+
/// <param name="externalReference">The external reference (guid).</param>
57+
/// <returns>A ContentServerViewModel.</returns>
58+
public ContentServerViewModel GetContentServerDetailsByLHExternalReference(string externalReference)
59+
{
60+
var param0 = new SqlParameter("@externalReference", SqlDbType.NVarChar) { Value = externalReference };
6161

62-
var scormContentData = await this.DbContext.ContentServerViewModel.FromSqlRaw("[resources].[GetContentServerDetailsForLHExternalReference] @externalReference", param0).AsNoTracking().ToListAsync();
62+
var scormContentServerViewModel = this.DbContext.ContentServerViewModel.FromSqlRaw("[resources].[GetContentServerDetailsForLHExternalReference] @externalReference", param0).AsEnumerable().FirstOrDefault();
6363

64-
ContentServerViewModel scormContentServerViewModel = scormContentData.AsEnumerable().FirstOrDefault();
65-
return scormContentServerViewModel;
66-
}
64+
return scormContentServerViewModel;
65+
}
6766

68-
/// <summary>
69-
/// Gets the SCORM content details for a particular historic external URL. These historic URLs have to be supported to
70-
/// allow historic ESR links on migrated resources to continue to work.
71-
/// </summary>
72-
/// <param name="externalUrl">The external Url.</param>
73-
/// <returns>A ContentServerViewModel.</returns>
74-
public async Task<ContentServerViewModel> GetScormContentServerDetailsByHistoricExternalUrl(string externalUrl)
75-
{
76-
var param0 = new SqlParameter("@externalUrl", SqlDbType.NVarChar) { Value = externalUrl };
67+
/// <summary>
68+
/// Gets the SCORM content details for a particular historic external URL. These historic URLs have to be supported to
69+
/// allow historic ESR links on migrated resources to continue to work.
70+
/// </summary>
71+
/// <param name="externalUrl">The external Url.</param>
72+
/// <returns>A ContentServerViewModel.</returns>
73+
public ContentServerViewModel GetScormContentServerDetailsByHistoricExternalUrl(string externalUrl)
74+
{
75+
var param0 = new SqlParameter("@externalUrl", SqlDbType.NVarChar) { Value = externalUrl };
76+
77+
var scormContentServerViewModel = this.DbContext.ContentServerViewModel.FromSqlRaw("[resources].[GetScormContentServerDetailsForHistoricExternalUrl] @externalUrl", param0).ToList().FirstOrDefault<ContentServerViewModel>();
7778

78-
var scormContentData = await this.DbContext.ContentServerViewModel.FromSqlRaw("[resources].[GetScormContentServerDetailsForHistoricExternalUrl] @externalUrl", param0).AsNoTracking().ToListAsync();
79-
ContentServerViewModel scormContentServerViewModel = scormContentData.FirstOrDefault<ContentServerViewModel>();
80-
return scormContentServerViewModel;
81-
}
79+
return scormContentServerViewModel;
80+
}
8281

83-
/// <inheritdoc/>
84-
public async Task<List<string>> GetExternalReferenceByResourceId(int resourceId)
85-
{
86-
return await (from rr in this.DbContext.ResourceReference
87-
join er in this.DbContext.ExternalReference on rr.Id equals er.ResourceReferenceId
88-
where rr.ResourceId == resourceId
89-
select er.Reference)
90-
.ToListAsync();
91-
}
82+
/// <inheritdoc/>
83+
public async Task<List<string>> GetExternalReferenceByResourceId(int resourceId)
84+
{
85+
return await (from rr in this.DbContext.ResourceReference
86+
join er in this.DbContext.ExternalReference on rr.Id equals er.ResourceReferenceId
87+
where rr.ResourceId == resourceId
88+
select er.Reference)
89+
.ToListAsync();
9290
}
91+
}
9392
}

WebAPI/LearningHub.Nhs.Services.Interface/IScormContentServerService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ public interface IScormContentServerService
1414
/// </summary>
1515
/// <param name="externalUrl">The externalUrl<see cref="string"/>.</param>
1616
/// <returns>The <see cref="ContentServerViewModel"/>.</returns>
17-
Task<ContentServerViewModel> GetContentDetailsByExternalUrl(string externalUrl);
17+
ContentServerViewModel GetContentDetailsByExternalUrl(string externalUrl);
1818

1919
/// <summary>
2020
/// The GetContentDetailsByExternalReference.
2121
/// </summary>
2222
/// <param name="externalReference">The externalReference<see cref="Guid"/>.</param>
2323
/// <returns>The <see cref="ContentServerViewModel"/>.</returns>
24-
Task<ContentServerViewModel> GetContentDetailsByExternalReference(string externalReference);
24+
ContentServerViewModel GetContentDetailsByExternalReference(string externalReference);
2525

2626
/// <summary>
2727
/// The LogResourceReferenceEventAsync.

WebAPI/LearningHub.Nhs.Services/ScormContentServerService.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ public ScormContentServerService(
6363
/// </summary>
6464
/// <param name="externalUrl">The externalUrl<see cref="string"/>.</param>
6565
/// <returns>The <see cref="ContentServerViewModel"/>.</returns>
66-
public async Task<ContentServerViewModel> GetContentDetailsByExternalUrl(string externalUrl)
66+
public ContentServerViewModel GetContentDetailsByExternalUrl(string externalUrl)
6767
{
68-
var response = await this.scormResourceVersionRepository.GetScormContentServerDetailsByHistoricExternalUrl(externalUrl);
68+
var response = this.scormResourceVersionRepository.GetScormContentServerDetailsByHistoricExternalUrl(externalUrl);
6969

7070
return response;
7171
}
@@ -75,9 +75,9 @@ public async Task<ContentServerViewModel> GetContentDetailsByExternalUrl(string
7575
/// </summary>
7676
/// <param name="externalReference">The externalReference<see cref="string"/>.</param>
7777
/// <returns>The <see cref="Task{ContentServerViewModel}"/>.</returns>
78-
public async Task<ContentServerViewModel> GetContentDetailsByExternalReference(string externalReference)
78+
public ContentServerViewModel GetContentDetailsByExternalReference(string externalReference)
7979
{
80-
var response = await this.scormResourceVersionRepository.GetContentServerDetailsByLHExternalReference(externalReference);
80+
var response = this.scormResourceVersionRepository.GetContentServerDetailsByLHExternalReference(externalReference);
8181

8282
return response;
8383
}

0 commit comments

Comments
 (0)