@@ -1646,64 +1646,71 @@ public async Task<ResourceItemViewModel> GetResourceItemViewModelAsync(int resou
16461646 // - set field ResourceVersionIdInEdit / ResourceVersionIdPublishing for this scenario, required for UI rendering
16471647 var rv = await this . resourceVersionRepository . GetCurrentForResourceReferenceIdAsync ( resourceReferenceId ) ;
16481648
1649- int resourceVersionIdInEdit = 0 ;
1650- int resourceVersionIdPublishing = 0 ;
1651-
1652- if ( rv . VersionStatusEnum == VersionStatusEnum . Draft || rv . VersionStatusEnum == VersionStatusEnum . Publishing )
1649+ if ( rv != null )
16531650 {
1654- var rvp = await this . resourceVersionRepository . GetCurrentPublicationForResourceReferenceIdAsync ( resourceReferenceId ) ;
1651+ int resourceVersionIdInEdit = 0 ;
1652+ int resourceVersionIdPublishing = 0 ;
16551653
1656- if ( rvp != null && rv . VersionStatusEnum == VersionStatusEnum . Draft )
1654+ if ( rv . VersionStatusEnum == VersionStatusEnum . Draft || rv . VersionStatusEnum == VersionStatusEnum . Publishing )
16571655 {
1658- resourceVersionIdInEdit = rv . Id ;
1659- }
1656+ var rvp = await this . resourceVersionRepository . GetCurrentPublicationForResourceReferenceIdAsync ( resourceReferenceId ) ;
16601657
1661- if ( rvp != null && rv . VersionStatusEnum == VersionStatusEnum . Publishing )
1662- {
1663- resourceVersionIdPublishing = rv . Id ;
1658+ if ( rvp != null && rv . VersionStatusEnum == VersionStatusEnum . Draft )
1659+ {
1660+ resourceVersionIdInEdit = rv . Id ;
1661+ }
1662+
1663+ if ( rvp != null && rv . VersionStatusEnum == VersionStatusEnum . Publishing )
1664+ {
1665+ resourceVersionIdPublishing = rv . Id ;
1666+ }
1667+
1668+ rv = rvp ;
16641669 }
16651670
1666- rv = rvp ;
1667- }
1671+ var erv = await this . GetResourceVersionExtendedViewModelAsync ( rv . Id , userId ) ;
1672+
1673+ var retVal = new ResourceItemViewModel ( erv ) ;
1674+ retVal . Id = resourceReferenceId ;
1675+ var bookmark = this . bookmarkRepository . GetAll ( ) . Where ( b => b . ResourceReferenceId == resourceReferenceId && b . UserId == userId ) . FirstOrDefault ( ) ;
1676+ retVal . BookmarkId = bookmark ? . Id ;
1677+ retVal . IsBookmarked = ! bookmark ? . Deleted ?? false ;
1678+ retVal . ReadOnly = readOnly ;
1679+ retVal . DisplayForContributor = await this . UserCanEditResourceVersion ( rv . CreateUserId , rv . Id , userId ) ;
1680+ retVal . ResourceVersionIdInEdit = resourceVersionIdInEdit ;
1681+ retVal . ResourceVersionIdPublishing = resourceVersionIdPublishing ;
1682+ retVal . ResourceAccessibilityEnum = rv . ResourceAccessibilityEnum ;
1683+
1684+ // Obtain catalogue associated with the supplied Resource Reference.
1685+ var rr = await this . resourceReferenceRepository . GetByOriginalResourceReferenceIdAsync ( resourceReferenceId , true ) ;
1686+ var catalogueNodeVersion = this . catalogueNodeVersionRepository . GetBasicCatalogue ( rr . NodePath . CatalogueNode . Id ) ;
1687+ retVal . Catalogue = this . mapper . Map < CatalogueViewModel > ( catalogueNodeVersion ) ;
1688+ retVal . NodePathId = rr . NodePathId . Value ;
16681689
1669- var erv = await this . GetResourceVersionExtendedViewModelAsync ( rv . Id , userId ) ;
1690+ switch ( rv . Resource . ResourceTypeEnum )
1691+ {
1692+ case ResourceTypeEnum . Case :
1693+ retVal . CaseDetails = erv . CaseDetails ;
1694+ break ;
16701695
1671- var retVal = new ResourceItemViewModel ( erv ) ;
1672- retVal . Id = resourceReferenceId ;
1673- var bookmark = this . bookmarkRepository . GetAll ( ) . Where ( b => b . ResourceReferenceId == resourceReferenceId && b . UserId == userId ) . FirstOrDefault ( ) ;
1674- retVal . BookmarkId = bookmark ? . Id ;
1675- retVal . IsBookmarked = ! bookmark ? . Deleted ?? false ;
1676- retVal . ReadOnly = readOnly ;
1677- retVal . DisplayForContributor = await this . UserCanEditResourceVersion ( rv . CreateUserId , rv . Id , userId ) ;
1678- retVal . ResourceVersionIdInEdit = resourceVersionIdInEdit ;
1679- retVal . ResourceVersionIdPublishing = resourceVersionIdPublishing ;
1680- retVal . ResourceAccessibilityEnum = rv . ResourceAccessibilityEnum ;
1681-
1682- // Obtain catalogue associated with the supplied Resource Reference.
1683- var rr = await this . resourceReferenceRepository . GetByOriginalResourceReferenceIdAsync ( resourceReferenceId , true ) ;
1684- var catalogueNodeVersion = this . catalogueNodeVersionRepository . GetBasicCatalogue ( rr . NodePath . CatalogueNode . Id ) ;
1685- retVal . Catalogue = this . mapper . Map < CatalogueViewModel > ( catalogueNodeVersion ) ;
1686- retVal . NodePathId = rr . NodePathId . Value ;
1687-
1688- switch ( rv . Resource . ResourceTypeEnum )
1689- {
1690- case ResourceTypeEnum . Case :
1691- retVal . CaseDetails = erv . CaseDetails ;
1692- break ;
1696+ case ResourceTypeEnum . Assessment :
1697+ retVal . AssessmentDetails = erv . AssessmentDetails ;
1698+ break ;
16931699
1694- case ResourceTypeEnum . Assessment :
1695- retVal . AssessmentDetails = erv . AssessmentDetails ;
1696- break ;
1700+ case ResourceTypeEnum . Html :
1701+ retVal . HtmlDetails = erv . HtmlDetails ;
1702+ break ;
16971703
1698- case ResourceTypeEnum . Html :
1699- retVal . HtmlDetails = erv . HtmlDetails ;
1700- break ;
1704+ default :
1705+ break ;
1706+ }
17011707
1702- default :
1703- break ;
1708+ return retVal ;
1709+ }
1710+ else
1711+ {
1712+ return null ;
17041713 }
1705-
1706- return retVal ;
17071714 }
17081715
17091716 /// <summary>
@@ -3225,30 +3232,30 @@ await strategy.Execute(
32253232 /// <returns>The <see cref="Task{LearningHubValidationResult}"/>.</returns>
32263233 public async Task CheckAndRemoveResourceVersionProviderAsync ( int resourceVersionId , int userId )
32273234 {
3228- List < int > userProviderList = new List < int > ( ) ;
3235+ List < int > userProviderList = new List < int > ( ) ;
32293236
3230- // list of resource version provider
3231- var resourceProviderList = await this . providerService . GetByResourceVersionIdAsync ( resourceVersionId ) ;
3237+ // list of resource version provider
3238+ var resourceProviderList = await this . providerService . GetByResourceVersionIdAsync ( resourceVersionId ) ;
32323239
3233- // list of user providers
3234- var userProviders = await this . providerService . GetByUserIdAsync ( userId ) ;
3240+ // list of user providers
3241+ var userProviders = await this . providerService . GetByUserIdAsync ( userId ) ;
32353242
3236- if ( userProviders != null && userProviders . Count > 0 )
3237- {
3238- userProviderList . AddRange ( userProviders . Select ( n => n . Id ) . ToList ( ) ) ;
3239- }
3243+ if ( userProviders != null && userProviders . Count > 0 )
3244+ {
3245+ userProviderList . AddRange ( userProviders . Select ( n => n . Id ) . ToList ( ) ) ;
3246+ }
32403247
3241- // delete provider from resource version if user do not have permission.
3242- if ( resourceProviderList != null && resourceProviderList . Count > 0 )
3248+ // delete provider from resource version if user do not have permission.
3249+ if ( resourceProviderList != null && resourceProviderList . Count > 0 )
3250+ {
3251+ foreach ( ProviderViewModel resourceProvider in resourceProviderList )
32433252 {
3244- foreach ( ProviderViewModel resourceProvider in resourceProviderList )
3253+ if ( ! userProviderList . Contains ( resourceProvider . Id ) )
32453254 {
3246- if ( ! userProviderList . Contains ( resourceProvider . Id ) )
3247- {
3248- await this . resourceVersionProviderRepository . DeleteAsync ( resourceVersionId , resourceProvider . Id , userId ) ;
3249- }
3255+ await this . resourceVersionProviderRepository . DeleteAsync ( resourceVersionId , resourceProvider . Id , userId ) ;
32503256 }
32513257 }
3258+ }
32523259 }
32533260
32543261 /// <summary>
0 commit comments