@@ -1320,12 +1320,12 @@ public async Task<List<ResourceVersionViewModel>> GetResourceVersionsAsync(int r
13201320 /// Get file directory for unpublished or deleted versions.
13211321 /// </summary>
13221322 /// <param name="resourceVersionId">The resourceVersionId<see cref="int"/>.</param>
1323+ /// <param name="deletedResource">.</param>
13231324 /// <returns>The <see cref="List{String}"/>.</returns>
1324- public async Task < List < string > > GetObsoleteResourceFile ( int resourceVersionId )
1325+ public async Task < List < string > > GetObsoleteResourceFile ( int resourceVersionId , bool deletedResource = false )
13251326 {
13261327 var retVal = new List < string > ( ) ;
1327- File fileDetails = null ;
1328- var resource = await this . GetResourceVersionByIdAsync ( resourceVersionId ) ;
1328+ var resource = await this . GetResourceVersionExtendedViewModelAsync ( resourceVersionId ) ;
13291329 var rvs = await this . resourceVersionRepository . GetResourceVersionsAsync ( resource . ResourceId ) ;
13301330 rvs = rvs . Where ( x => x . Id != resourceVersionId && x . PublicationId > 0 ) . OrderByDescending ( x => x . PublicationId ) . ToList ( ) ;
13311331 var rv = rvs . FirstOrDefault ( ) ;
@@ -1334,21 +1334,142 @@ public async Task<List<string>> GetObsoleteResourceFile(int resourceVersionId)
13341334 var extendedResourceVersion = await this . GetResourceVersionExtendedViewModelAsync ( rv . Id ) ;
13351335 if ( extendedResourceVersion . ResourceTypeEnum == ResourceTypeEnum . Scorm )
13361336 {
1337- retVal . Add ( extendedResourceVersion . ScormDetails . ContentFilePath ) ;
1337+ if ( resource . ScormDetails ? . ContentFilePath != extendedResourceVersion . ScormDetails . ContentFilePath )
1338+ {
1339+ if ( ! deletedResource )
1340+ {
1341+ retVal . Add ( extendedResourceVersion . ScormDetails . ContentFilePath ) ;
1342+ }
1343+ else
1344+ {
1345+ retVal . Add ( resource . ScormDetails ? . File ? . FilePath ) ;
1346+ }
1347+ }
13381348 }
13391349 else if ( extendedResourceVersion . ResourceTypeEnum == ResourceTypeEnum . Html )
13401350 {
1341- retVal . Add ( extendedResourceVersion . HtmlDetails . ContentFilePath ) ;
1351+ if ( resource . HtmlDetails ? . ContentFilePath != extendedResourceVersion . HtmlDetails . ContentFilePath )
1352+ {
1353+ if ( ! deletedResource )
1354+ {
1355+ retVal . Add ( extendedResourceVersion . HtmlDetails . ContentFilePath ) ;
1356+ }
1357+ else
1358+ {
1359+ retVal . Add ( resource . HtmlDetails ? . File ? . FilePath ) ;
1360+ }
1361+ }
1362+ }
1363+ else if ( extendedResourceVersion . ResourceTypeEnum == ResourceTypeEnum . GenericFile )
1364+ {
1365+ if ( resource . GenericFileDetails . File . FilePath != extendedResourceVersion . GenericFileDetails . File . FilePath )
1366+ {
1367+ if ( ! deletedResource )
1368+ {
1369+ retVal . Add ( extendedResourceVersion . GenericFileDetails . File . FilePath ) ;
1370+ }
1371+ else
1372+ {
1373+ retVal . Add ( resource . GenericFileDetails . File . FilePath ) ;
1374+ }
1375+ }
1376+ }
1377+ else if ( extendedResourceVersion . ResourceTypeEnum == ResourceTypeEnum . Image )
1378+ {
1379+ if ( resource . ImageDetails . File . FilePath != extendedResourceVersion . ImageDetails . File . FilePath )
1380+ {
1381+ if ( ! deletedResource )
1382+ {
1383+ retVal . Add ( extendedResourceVersion . ImageDetails . File . FilePath ) ;
1384+ }
1385+ else
1386+ {
1387+ retVal . Add ( resource . ImageDetails . File . FilePath ) ;
1388+ }
1389+ }
13421390 }
13431391 else if ( extendedResourceVersion . ResourceTypeEnum == ResourceTypeEnum . Audio )
13441392 {
1345- retVal . Add ( extendedResourceVersion . AudioDetails . File . FilePath ) ;
1346- retVal . Add ( extendedResourceVersion . AudioDetails . ResourceAzureMediaAsset . FilePath ) ;
1393+ if ( resource . AudioDetails . File . FilePath != extendedResourceVersion . AudioDetails . File . FilePath )
1394+ {
1395+ if ( ! deletedResource )
1396+ {
1397+ retVal . Add ( extendedResourceVersion . AudioDetails . File . FilePath ) ;
1398+ }
1399+ else
1400+ {
1401+ retVal . Add ( resource . AudioDetails . File . FilePath ) ;
1402+ }
1403+ }
1404+
1405+ if ( resource . AudioDetails . ResourceAzureMediaAsset . FilePath != extendedResourceVersion . AudioDetails . ResourceAzureMediaAsset . FilePath )
1406+ {
1407+ if ( ! deletedResource )
1408+ {
1409+ retVal . Add ( extendedResourceVersion . AudioDetails . ResourceAzureMediaAsset . FilePath ) ;
1410+ }
1411+ else
1412+ {
1413+ retVal . Add ( resource . AudioDetails . ResourceAzureMediaAsset . FilePath ) ;
1414+ }
1415+ }
13471416 }
13481417 else if ( extendedResourceVersion . ResourceTypeEnum == ResourceTypeEnum . Video )
13491418 {
1350- retVal . Add ( extendedResourceVersion . VideoDetails . File . FilePath ) ;
1351- retVal . Add ( extendedResourceVersion . VideoDetails . ResourceAzureMediaAsset . FilePath ) ;
1419+ if ( resource . VideoDetails . File . FilePath != extendedResourceVersion . VideoDetails . File . FilePath )
1420+ {
1421+ if ( ! deletedResource )
1422+ {
1423+ retVal . Add ( extendedResourceVersion . VideoDetails . File . FilePath ) ;
1424+ }
1425+ else
1426+ {
1427+ retVal . Add ( resource . VideoDetails . File . FilePath ) ;
1428+ }
1429+ }
1430+
1431+ if ( resource . VideoDetails . ResourceAzureMediaAsset . FilePath != extendedResourceVersion . VideoDetails . ResourceAzureMediaAsset . FilePath )
1432+ {
1433+ if ( ! deletedResource )
1434+ {
1435+ retVal . Add ( extendedResourceVersion . VideoDetails . ResourceAzureMediaAsset . FilePath ) ;
1436+ }
1437+ else
1438+ {
1439+ retVal . Add ( resource . VideoDetails . ResourceAzureMediaAsset . FilePath ) ;
1440+ }
1441+ }
1442+ }
1443+ else if ( extendedResourceVersion . ResourceTypeEnum == ResourceTypeEnum . Article )
1444+ {
1445+ var inputResourceFiles = resource . ArticleDetails . Files . ToList ( ) ;
1446+ var previousPublishedfiles = extendedResourceVersion . ArticleDetails . Files . ToList ( ) ;
1447+ if ( ! deletedResource )
1448+ {
1449+ if ( previousPublishedfiles . Any ( ) )
1450+ {
1451+ foreach ( var file in previousPublishedfiles )
1452+ {
1453+ if ( ! inputResourceFiles . Where ( x => x . FilePath == file . FilePath ) . Any ( ) )
1454+ {
1455+ retVal . Add ( file . FilePath ) ;
1456+ }
1457+ }
1458+ }
1459+ }
1460+ else
1461+ {
1462+ if ( inputResourceFiles . Any ( ) )
1463+ {
1464+ foreach ( var file in inputResourceFiles )
1465+ {
1466+ if ( ! previousPublishedfiles . Where ( x => x . FilePath == file . FilePath ) . Any ( ) )
1467+ {
1468+ retVal . Add ( file . FilePath ) ;
1469+ }
1470+ }
1471+ }
1472+ }
13521473 }
13531474 }
13541475
0 commit comments