From 6cb0c530b1c5abede0912e62bc08a802f7505b73 Mon Sep 17 00:00:00 2001 From: Oluwatobi Awe Date: Thu, 18 Apr 2024 13:15:58 +0100 Subject: [PATCH] TD-4052 bugfix --- .../Controllers/Api/ContributeController.cs | 4 ++-- LearningHub.Nhs.WebUI/Services/FileService.cs | 4 ++++ WebAPI/LearningHub.Nhs.Services/ResourceService.cs | 10 +++++----- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/LearningHub.Nhs.WebUI/Controllers/Api/ContributeController.cs b/LearningHub.Nhs.WebUI/Controllers/Api/ContributeController.cs index 279bda210..ba8e6b975 100644 --- a/LearningHub.Nhs.WebUI/Controllers/Api/ContributeController.cs +++ b/LearningHub.Nhs.WebUI/Controllers/Api/ContributeController.cs @@ -228,7 +228,7 @@ public async Task DeleteResourceVersion(int resourceVersionId) var validationResult = await this.contributeService.DeleteResourceVersionAsync(resourceVersionId); if (validationResult.IsValid) { - if (associatedFile.Any()) + if (associatedFile != null && associatedFile.Any()) { _ = Task.Run(async () => { await this.fileService.PurgeResourceFile(null, associatedFile); }); } @@ -348,7 +348,7 @@ public async Task PublishResourceVersionAsync([FromBody] PublishVi if (associatedResource.ResourceTypeEnum != ResourceTypeEnum.Scorm && associatedResource.ResourceTypeEnum != ResourceTypeEnum.Html) { var obsoleteFiles = await this.resourceService.GetObsoleteResourceFile(publishViewModel.ResourceVersionId); - if (obsoleteFiles.Any()) + if (obsoleteFiles != null && obsoleteFiles.Any()) { await this.fileService.PurgeResourceFile(null, obsoleteFiles); } diff --git a/LearningHub.Nhs.WebUI/Services/FileService.cs b/LearningHub.Nhs.WebUI/Services/FileService.cs index 1aa8078e8..d9a95f440 100644 --- a/LearningHub.Nhs.WebUI/Services/FileService.cs +++ b/LearningHub.Nhs.WebUI/Services/FileService.cs @@ -405,6 +405,10 @@ private async Task MoveInPutDirectoryToArchive(List allDirectoryRef) { var directory = this.ShareClient.GetDirectoryClient(directoryRef); var archiveDirectory = this.InputArchiveShareClient.GetDirectoryClient(directoryRef); + if (!directory.Exists()) + { + continue; + } await foreach (var fileItem in directory.GetFilesAndDirectoriesAsync()) { diff --git a/WebAPI/LearningHub.Nhs.Services/ResourceService.cs b/WebAPI/LearningHub.Nhs.Services/ResourceService.cs index 69663fcc7..f7d855edc 100644 --- a/WebAPI/LearningHub.Nhs.Services/ResourceService.cs +++ b/WebAPI/LearningHub.Nhs.Services/ResourceService.cs @@ -1390,7 +1390,7 @@ public async Task> GetObsoleteResourceFile(int resourceVersionId, b } else if (extendedResourceVersion.ResourceTypeEnum == ResourceTypeEnum.Audio) { - if (resource.AudioDetails.File.FilePath != extendedResourceVersion.AudioDetails.File.FilePath) + if (resource.AudioDetails?.File?.FilePath != extendedResourceVersion.AudioDetails.File.FilePath) { if (!deletedResource) { @@ -1402,7 +1402,7 @@ public async Task> GetObsoleteResourceFile(int resourceVersionId, b } } - if (resource.AudioDetails.ResourceAzureMediaAsset.FilePath != extendedResourceVersion.AudioDetails.ResourceAzureMediaAsset.FilePath) + if (resource.AudioDetails?.ResourceAzureMediaAsset?.FilePath != extendedResourceVersion.AudioDetails.ResourceAzureMediaAsset.FilePath) { if (!deletedResource) { @@ -1416,7 +1416,7 @@ public async Task> GetObsoleteResourceFile(int resourceVersionId, b } else if (extendedResourceVersion.ResourceTypeEnum == ResourceTypeEnum.Video) { - if (resource.VideoDetails.File.FilePath != extendedResourceVersion.VideoDetails.File.FilePath) + if (resource.VideoDetails?.File?.FilePath != extendedResourceVersion.VideoDetails.File.FilePath) { if (!deletedResource) { @@ -1428,7 +1428,7 @@ public async Task> GetObsoleteResourceFile(int resourceVersionId, b } } - if (resource.VideoDetails.ResourceAzureMediaAsset.FilePath != extendedResourceVersion.VideoDetails.ResourceAzureMediaAsset.FilePath) + if (resource.VideoDetails?.ResourceAzureMediaAsset?.FilePath != extendedResourceVersion.VideoDetails.ResourceAzureMediaAsset.FilePath) { if (!deletedResource) { @@ -1443,7 +1443,7 @@ public async Task> GetObsoleteResourceFile(int resourceVersionId, b else if (extendedResourceVersion.ResourceTypeEnum == ResourceTypeEnum.Article) { var inputResourceFiles = resource.ArticleDetails.Files.ToList(); - var previousPublishedfiles = extendedResourceVersion.ArticleDetails.Files.ToList(); + var previousPublishedfiles = extendedResourceVersion.ArticleDetails?.Files?.ToList(); if (!deletedResource) { if (previousPublishedfiles.Any())