From 5d1cb456cc508b44a178f9ab55dc0208d56c48ca Mon Sep 17 00:00:00 2001 From: Sarathlal Sarangadharan Date: Fri, 7 Jun 2024 14:45:18 +0100 Subject: [PATCH] TD-4234: Modified GetExternalContentDetailsById (Web API) API call and change it to async Call --- .../Controllers/ResourceController.cs | 4 ++-- .../Resources/IResourceVersionRepository.cs | 2 +- .../Resources/ResourceVersionRepository.cs | 6 +++--- .../IResourceService.cs | 2 +- WebAPI/LearningHub.Nhs.Services/ResourceService.cs | 10 +++++----- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/WebAPI/LearningHub.Nhs.API/Controllers/ResourceController.cs b/WebAPI/LearningHub.Nhs.API/Controllers/ResourceController.cs index 18044a758..b556e211d 100644 --- a/WebAPI/LearningHub.Nhs.API/Controllers/ResourceController.cs +++ b/WebAPI/LearningHub.Nhs.API/Controllers/ResourceController.cs @@ -496,9 +496,9 @@ public async Task GetScormDetailsAsync(int resourceVersionId) /// The resourceVersionId. /// The . [HttpGet("GetExternalContentDetailsById/{resourceVersionId}")] - public ActionResult GetScormContentDetailsById(int resourceVersionId) + public async Task GetScormContentDetailsById(int resourceVersionId) { - return this.Ok(this.resourceService.GetExternalContentDetails(resourceVersionId, this.CurrentUserId)); + return this.Ok(await this.resourceService.GetExternalContentDetails(resourceVersionId, this.CurrentUserId)); } /// diff --git a/WebAPI/LearningHub.Nhs.Repository.Interface/Resources/IResourceVersionRepository.cs b/WebAPI/LearningHub.Nhs.Repository.Interface/Resources/IResourceVersionRepository.cs index 364cd851b..00cbff4d7 100644 --- a/WebAPI/LearningHub.Nhs.Repository.Interface/Resources/IResourceVersionRepository.cs +++ b/WebAPI/LearningHub.Nhs.Repository.Interface/Resources/IResourceVersionRepository.cs @@ -262,6 +262,6 @@ public interface IResourceVersionRepository : IGenericRepositoryresourceVersionId. /// userId. /// A representing the result of the asynchronous operation. - ExternalContentDetailsViewModel GetExternalContentDetails(int resourceVersionId, int userId); + Task GetExternalContentDetails(int resourceVersionId, int userId); } } diff --git a/WebAPI/LearningHub.Nhs.Repository/Resources/ResourceVersionRepository.cs b/WebAPI/LearningHub.Nhs.Repository/Resources/ResourceVersionRepository.cs index cd9860a9f..10bf4cddf 100644 --- a/WebAPI/LearningHub.Nhs.Repository/Resources/ResourceVersionRepository.cs +++ b/WebAPI/LearningHub.Nhs.Repository/Resources/ResourceVersionRepository.cs @@ -679,15 +679,15 @@ await this.DbContext.Database.ExecuteSqlRawAsync( /// resourceVersionId. /// userId. /// A representing the result of the asynchronous operation. - public ExternalContentDetailsViewModel GetExternalContentDetails(int resourceVersionId, int userId) + public async Task GetExternalContentDetails(int resourceVersionId, int userId) { try { var param0 = new SqlParameter("@resourceVersionId", SqlDbType.Int) { Value = resourceVersionId }; var param1 = new SqlParameter("@userId", SqlDbType.Int) { Value = userId }; - var externalContentDetailsViewModel = this.DbContext.ExternalContentDetailsViewModel.FromSqlRaw("[resources].[GetExternalContentDetails] @resourceVersionId, @userId", param0, param1).AsEnumerable().FirstOrDefault(); - + var retVal = await this.DbContext.ExternalContentDetailsViewModel.FromSqlRaw("[resources].[GetExternalContentDetails] @resourceVersionId, @userId", param0, param1).AsNoTracking().ToListAsync(); + ExternalContentDetailsViewModel externalContentDetailsViewModel = retVal.AsEnumerable().FirstOrDefault(); return externalContentDetailsViewModel; } catch (Exception ex) diff --git a/WebAPI/LearningHub.Nhs.Services.Interface/IResourceService.cs b/WebAPI/LearningHub.Nhs.Services.Interface/IResourceService.cs index 0ce7f5c00..c149110b9 100644 --- a/WebAPI/LearningHub.Nhs.Services.Interface/IResourceService.cs +++ b/WebAPI/LearningHub.Nhs.Services.Interface/IResourceService.cs @@ -104,7 +104,7 @@ public interface IResourceService /// The resourceVersionId. /// userId. /// The . - ExternalContentDetailsViewModel GetExternalContentDetails(int resourceVersionId, int userId); + Task GetExternalContentDetails(int resourceVersionId, int userId); /// /// The get image details by id async. diff --git a/WebAPI/LearningHub.Nhs.Services/ResourceService.cs b/WebAPI/LearningHub.Nhs.Services/ResourceService.cs index a97546303..6d6220122 100644 --- a/WebAPI/LearningHub.Nhs.Services/ResourceService.cs +++ b/WebAPI/LearningHub.Nhs.Services/ResourceService.cs @@ -2793,7 +2793,7 @@ public async Task GetGenericFileDetailsByIdAsync(int resou var vm = this.mapper.Map(genericFile); // User id is used to populate a field we aren't going to use, so we can just pass in the system user id. - var externalContentDetails = this.resourceVersionRepository.GetExternalContentDetails(resourceVersionId, 4); + var externalContentDetails = await this.resourceVersionRepository.GetExternalContentDetails(resourceVersionId, 4); if (!string.IsNullOrEmpty(externalContentDetails?.ExternalReference)) { vm.HostedContentUrl = $"{this.settings.LearningHubContentServerUrl}/{externalContentDetails.ExternalReference}/".ToLower(); @@ -2814,7 +2814,7 @@ public async Task GetHtmlDetailsByIdAsync(int resourceVer var vm = this.mapper.Map(htmlFile); // User id is used to populate a field we aren't going to use, so we can just pass in the system user id. - var externalContentDetails = this.resourceVersionRepository.GetExternalContentDetails(resourceVersionId, 4); + var externalContentDetails = await this.resourceVersionRepository.GetExternalContentDetails(resourceVersionId, 4); if (!string.IsNullOrEmpty(externalContentDetails?.ExternalReference)) { vm.HostedContentUrl = $"{this.settings.LearningHubContentServerUrl}/{externalContentDetails.ExternalReference}/".ToLower(); @@ -2835,7 +2835,7 @@ public async Task GetScormDetailsByIdAsync(int resourceVersionId var vm = this.mapper.Map(scorm); // User id is used to populate a field we aren't going to use, so we can just pass in the system user id. - var externalContentDetails = this.resourceVersionRepository.GetExternalContentDetails(resourceVersionId, 4); + var externalContentDetails = await this.resourceVersionRepository.GetExternalContentDetails(resourceVersionId, 4); if (!string.IsNullOrEmpty(externalContentDetails?.ExternalReference)) { vm.HostedContentUrl = $"{this.settings.LearningHubContentServerUrl}/{externalContentDetails.ExternalReference}/".ToLower(); @@ -2851,9 +2851,9 @@ public async Task GetScormDetailsByIdAsync(int resourceVersionId /// The resourceVersionId. /// userId. /// The . - public ExternalContentDetailsViewModel GetExternalContentDetails(int resourceVersionId, int userId) + public async Task GetExternalContentDetails(int resourceVersionId, int userId) { - var viewModel = this.resourceVersionRepository.GetExternalContentDetails(resourceVersionId, userId); + var viewModel = await this.resourceVersionRepository.GetExternalContentDetails(resourceVersionId, userId); if (viewModel != null) { viewModel.HostedContentUrl = $"{this.settings.LearningHubContentServerUrl}/{viewModel.ExternalReference}/".ToLower();