- When publishing a resource it is important to mark a resource as 'Provided by' as it helps;
+ When publishing a resource it is important to mark a resource as 'Developed with' as it helps;
diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Activity/ScormActivityGetSummary.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Activity/ScormActivityGetSummary.sql
index e854a8c25..50c6d8a89 100644
--- a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Activity/ScormActivityGetSummary.sql
+++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Activity/ScormActivityGetSummary.sql
@@ -27,7 +27,7 @@ BEGIN
INNER JOIN
resources.[ResourceVersion] rv ON rv.id = r.CurrentResourceVersionId
WHERE
- rr.id = @ResourceReferenceId
+ rr.OriginalResourceReferenceId = @ResourceReferenceId
AND rr.Deleted = 0
AND r.Deleted = 0
AND rv.Deleted = 0
@@ -61,4 +61,4 @@ BEGIN
END
END
-GO
\ No newline at end of file
+GO
diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Resources/GetDashboardResources.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Resources/GetDashboardResources.sql
index f8fc7dfc5..18d83863b 100644
--- a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Resources/GetDashboardResources.sql
+++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Resources/GetDashboardResources.sql
@@ -150,7 +150,7 @@ BEGIN
LEFT JOIN ( SELECT DISTINCT CatalogueNodeId
FROM [hub].[RoleUserGroupView] rug JOIN hub.UserUserGroup uug ON rug.UserGroupId = uug.UserGroupId
WHERE rug.ScopeTypeId = 1 and rug.RoleId in (1,2,3) and uug.Deleted = 0 and uug.UserId = @userId) auth ON n.Id = auth.CatalogueNodeId
- LEFT JOIN resources.ResourceVersionRatingSummary rs ON rs.ResourceVersionId = rv.Id
+ INNER JOIN resources.ResourceVersionRatingSummary rs ON rs.ResourceVersionId = rv.Id
WHERE rv.VersionStatusId = 2
ORDER BY rvrs.AverageRating DESC, rvrs.RatingCount DESC, rv.Title
@@ -207,7 +207,7 @@ BEGIN
LEFT JOIN ( SELECT DISTINCT CatalogueNodeId
FROM [hub].[RoleUserGroupView] rug JOIN hub.UserUserGroup uug ON rug.UserGroupId = uug.UserGroupId
WHERE rug.ScopeTypeId = 1 and rug.RoleId in (1,2,3) and uug.Deleted = 0 and uug.UserId = @userId) auth ON n.Id = auth.CatalogueNodeId
- LEFT JOIN resources.ResourceVersionRatingSummary rs ON rs.ResourceVersionId = rv.Id
+ INNER JOIN resources.ResourceVersionRatingSummary rs ON rs.ResourceVersionId = rv.Id
WHERE rv.VersionStatusId = 2
ORDER BY p.CreateDate DESC
diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Resources/GetScormContentServerDetailsForHistoricExternalUrl.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Resources/GetScormContentServerDetailsForHistoricExternalUrl.sql
index a1b9c55fc..0e9d36efb 100644
--- a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Resources/GetScormContentServerDetailsForHistoricExternalUrl.sql
+++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Resources/GetScormContentServerDetailsForHistoricExternalUrl.sql
@@ -19,7 +19,7 @@ BEGIN
srv.EsrLinkTypeId EsrLinkType,
er.Active IsActive,
srv.ContentFilePath AS InternalResourceIdentifier,
- svm.ManifestURL AS ManifestUrl
+ svm.ManifestURL AS DefaultUrl
FROM
[resources].[UrlRewriting] u
join resources.ExternalReference er on u.ExternalReferenceId = er.Id
diff --git a/WebAPI/LearningHub.Nhs.Services/ResourceService.cs b/WebAPI/LearningHub.Nhs.Services/ResourceService.cs
index 22a1d1a20..0e1e36c09 100644
--- a/WebAPI/LearningHub.Nhs.Services/ResourceService.cs
+++ b/WebAPI/LearningHub.Nhs.Services/ResourceService.cs
@@ -1646,64 +1646,71 @@ public async Task GetResourceItemViewModelAsync(int resou
// - set field ResourceVersionIdInEdit / ResourceVersionIdPublishing for this scenario, required for UI rendering
var rv = await this.resourceVersionRepository.GetCurrentForResourceReferenceIdAsync(resourceReferenceId);
- int resourceVersionIdInEdit = 0;
- int resourceVersionIdPublishing = 0;
-
- if (rv.VersionStatusEnum == VersionStatusEnum.Draft || rv.VersionStatusEnum == VersionStatusEnum.Publishing)
+ if (rv != null)
{
- var rvp = await this.resourceVersionRepository.GetCurrentPublicationForResourceReferenceIdAsync(resourceReferenceId);
+ int resourceVersionIdInEdit = 0;
+ int resourceVersionIdPublishing = 0;
- if (rvp != null && rv.VersionStatusEnum == VersionStatusEnum.Draft)
+ if (rv.VersionStatusEnum == VersionStatusEnum.Draft || rv.VersionStatusEnum == VersionStatusEnum.Publishing)
{
- resourceVersionIdInEdit = rv.Id;
- }
+ var rvp = await this.resourceVersionRepository.GetCurrentPublicationForResourceReferenceIdAsync(resourceReferenceId);
- if (rvp != null && rv.VersionStatusEnum == VersionStatusEnum.Publishing)
- {
- resourceVersionIdPublishing = rv.Id;
+ if (rvp != null && rv.VersionStatusEnum == VersionStatusEnum.Draft)
+ {
+ resourceVersionIdInEdit = rv.Id;
+ }
+
+ if (rvp != null && rv.VersionStatusEnum == VersionStatusEnum.Publishing)
+ {
+ resourceVersionIdPublishing = rv.Id;
+ }
+
+ rv = rvp;
}
- rv = rvp;
- }
+ var erv = await this.GetResourceVersionExtendedViewModelAsync(rv.Id, userId);
+
+ var retVal = new ResourceItemViewModel(erv);
+ retVal.Id = resourceReferenceId;
+ var bookmark = this.bookmarkRepository.GetAll().Where(b => b.ResourceReferenceId == resourceReferenceId && b.UserId == userId).FirstOrDefault();
+ retVal.BookmarkId = bookmark?.Id;
+ retVal.IsBookmarked = !bookmark?.Deleted ?? false;
+ retVal.ReadOnly = readOnly;
+ retVal.DisplayForContributor = await this.UserCanEditResourceVersion(rv.CreateUserId, rv.Id, userId);
+ retVal.ResourceVersionIdInEdit = resourceVersionIdInEdit;
+ retVal.ResourceVersionIdPublishing = resourceVersionIdPublishing;
+ retVal.ResourceAccessibilityEnum = rv.ResourceAccessibilityEnum;
+
+ // Obtain catalogue associated with the supplied Resource Reference.
+ var rr = await this.resourceReferenceRepository.GetByOriginalResourceReferenceIdAsync(resourceReferenceId, true);
+ var catalogueNodeVersion = this.catalogueNodeVersionRepository.GetBasicCatalogue(rr.NodePath.CatalogueNode.Id);
+ retVal.Catalogue = this.mapper.Map(catalogueNodeVersion);
+ retVal.NodePathId = rr.NodePathId.Value;
- var erv = await this.GetResourceVersionExtendedViewModelAsync(rv.Id, userId);
+ switch (rv.Resource.ResourceTypeEnum)
+ {
+ case ResourceTypeEnum.Case:
+ retVal.CaseDetails = erv.CaseDetails;
+ break;
- var retVal = new ResourceItemViewModel(erv);
- retVal.Id = resourceReferenceId;
- var bookmark = this.bookmarkRepository.GetAll().Where(b => b.ResourceReferenceId == resourceReferenceId && b.UserId == userId).FirstOrDefault();
- retVal.BookmarkId = bookmark?.Id;
- retVal.IsBookmarked = !bookmark?.Deleted ?? false;
- retVal.ReadOnly = readOnly;
- retVal.DisplayForContributor = await this.UserCanEditResourceVersion(rv.CreateUserId, rv.Id, userId);
- retVal.ResourceVersionIdInEdit = resourceVersionIdInEdit;
- retVal.ResourceVersionIdPublishing = resourceVersionIdPublishing;
- retVal.ResourceAccessibilityEnum = rv.ResourceAccessibilityEnum;
-
- // Obtain catalogue associated with the supplied Resource Reference.
- var rr = await this.resourceReferenceRepository.GetByOriginalResourceReferenceIdAsync(resourceReferenceId, true);
- var catalogueNodeVersion = this.catalogueNodeVersionRepository.GetBasicCatalogue(rr.NodePath.CatalogueNode.Id);
- retVal.Catalogue = this.mapper.Map(catalogueNodeVersion);
- retVal.NodePathId = rr.NodePathId.Value;
-
- switch (rv.Resource.ResourceTypeEnum)
- {
- case ResourceTypeEnum.Case:
- retVal.CaseDetails = erv.CaseDetails;
- break;
+ case ResourceTypeEnum.Assessment:
+ retVal.AssessmentDetails = erv.AssessmentDetails;
+ break;
- case ResourceTypeEnum.Assessment:
- retVal.AssessmentDetails = erv.AssessmentDetails;
- break;
+ case ResourceTypeEnum.Html:
+ retVal.HtmlDetails = erv.HtmlDetails;
+ break;
- case ResourceTypeEnum.Html:
- retVal.HtmlDetails = erv.HtmlDetails;
- break;
+ default:
+ break;
+ }
- default:
- break;
+ return retVal;
+ }
+ else
+ {
+ return null;
}
-
- return retVal;
}
///
@@ -3225,30 +3232,30 @@ await strategy.Execute(
/// The .
public async Task CheckAndRemoveResourceVersionProviderAsync(int resourceVersionId, int userId)
{
- List userProviderList = new List();
+ List userProviderList = new List();
- // list of resource version provider
- var resourceProviderList = await this.providerService.GetByResourceVersionIdAsync(resourceVersionId);
+ // list of resource version provider
+ var resourceProviderList = await this.providerService.GetByResourceVersionIdAsync(resourceVersionId);
- // list of user providers
- var userProviders = await this.providerService.GetByUserIdAsync(userId);
+ // list of user providers
+ var userProviders = await this.providerService.GetByUserIdAsync(userId);
- if (userProviders != null && userProviders.Count > 0)
- {
- userProviderList.AddRange(userProviders.Select(n => n.Id).ToList());
- }
+ if (userProviders != null && userProviders.Count > 0)
+ {
+ userProviderList.AddRange(userProviders.Select(n => n.Id).ToList());
+ }
- // delete provider from resource version if user do not have permission.
- if (resourceProviderList != null && resourceProviderList.Count > 0)
+ // delete provider from resource version if user do not have permission.
+ if (resourceProviderList != null && resourceProviderList.Count > 0)
+ {
+ foreach (ProviderViewModel resourceProvider in resourceProviderList)
{
- foreach (ProviderViewModel resourceProvider in resourceProviderList)
+ if (!userProviderList.Contains(resourceProvider.Id))
{
- if (!userProviderList.Contains(resourceProvider.Id))
- {
- await this.resourceVersionProviderRepository.DeleteAsync(resourceVersionId, resourceProvider.Id, userId);
- }
+ await this.resourceVersionProviderRepository.DeleteAsync(resourceVersionId, resourceProvider.Id, userId);
}
}
+ }
}
///