@@ -10,8 +10,6 @@ namespace LearningHub.Nhs.WebUI.Controllers
1010 using System . Threading . Tasks ;
1111 using LearningHub . Nhs . Caching ;
1212 using LearningHub . Nhs . Models . Common ;
13- using LearningHub . Nhs . Models . Entities . Hierarchy ;
14- using LearningHub . Nhs . Models . Entities . Resource ;
1513 using LearningHub . Nhs . Models . Enums ;
1614 using LearningHub . Nhs . Models . Extensions ;
1715 using LearningHub . Nhs . Models . Resource ;
@@ -353,15 +351,13 @@ public async Task<IActionResult> RateResource(ResourceRatingViewModel model)
353351 /// <summary>
354352 /// Ask user to confirm that they wish to edit a published resource.
355353 /// </summary>
356- /// <param name="resourceId">The resourceId.</param>
357- /// <param name="resourceReferenceId">The resourceReferenceId.</param>
358- /// <param name="resourceTitle">The resourceTitle.</param>
354+ /// <param name="viewModel">The ResourceIndexViewModel.</param>
359355 /// <returns>The <see cref="IActionResult"/>.</returns>
360356 [ Authorize ]
361- [ Route ( "Resource/EditConfirm/{resourceId}/{resourceReferenceId}/{resourceTitle} " ) ]
362- public IActionResult EditConfirm ( int resourceId , int resourceReferenceId , string resourceTitle )
357+ [ Route ( "Resource/EditConfirm" ) ]
358+ public IActionResult EditConfirm ( ResourceIndexViewModel viewModel )
363359 {
364- return this . View ( "EditConfirm" , new ResourceEditConfirmViewModel { ResourceId = resourceId , ResourceReferenceId = resourceReferenceId , ResourceTitle = resourceTitle } ) ;
360+ return this . View ( "EditConfirm" , new ResourceEditConfirmViewModel { ResourceId = viewModel . ResourceItem . ResourceId , ResourceReferenceId = viewModel . ResourceReferenceId , ResourceTitle = viewModel . ResourceItem . Title } ) ;
365361 }
366362
367363 /// <summary>
@@ -380,24 +376,20 @@ public IActionResult EditConfirm(ResourceEditConfirmViewModel viewModel)
380376 /// <summary>
381377 /// Ask user to confirm that they wish to unpublish a published resource.
382378 /// </summary>
383- /// <param name="resourceVersionId">The resourceVersionId.</param>
384- /// <param name="resourceReferenceId">The resourceReferenceId.</param>
385- /// <param name="resourceType">The resourceType.</param>
386- /// <param name="catalogueNodeVersionId"> The catalogueNodeVersionId.</param>
387- /// <param name="resourceTitle">The resourceTitle.</param>
388- /// <param name="scormEsrLinkType">The SCORM ESR link type.</param>
379+ /// <param name="viewModel">The ResourceIndexViewModel.</param>
389380 /// <returns>The <see cref="IActionResult"/>.</returns>
390381 [ Authorize ]
391- [ Route ( "Resource/UnpublishConfirm/{resourceVersionId}/{resourceReferenceId}/{resourceType}/{catalogueNodeVersionId}/{resourceTitle}/{scormEsrLinkType?} " ) ]
392- public IActionResult UnpublishConfirm ( int resourceVersionId , int resourceReferenceId , int resourceType , int catalogueNodeVersionId , string resourceTitle , int scormEsrLinkType )
382+ [ Route ( "Resource/UnpublishConfirm" ) ]
383+ public IActionResult UnpublishConfirm ( ResourceIndexViewModel viewModel )
393384 {
385+ int scormEsrLinkType = viewModel . ResourceItem . ResourceTypeEnum == ResourceTypeEnum . Scorm || viewModel . ResourceItem . ResourceTypeEnum == ResourceTypeEnum . GenericFile ? ( int ) viewModel . ExternalContentDetails . EsrLinkType : 0 ;
394386 return this . View ( "UnpublishConfirm" , new ResourceUnpublishConfirmViewModel
395387 {
396- ResourceVersionId = resourceVersionId ,
397- ResourceReferenceId = resourceReferenceId ,
398- ResourceType = ( ResourceTypeEnum ) resourceType ,
399- CatalogueNodeVersionId = catalogueNodeVersionId ,
400- ResourceTitle = resourceTitle ,
388+ ResourceVersionId = viewModel . ResourceItem . ResourceVersionId ,
389+ ResourceReferenceId = viewModel . ResourceReferenceId ,
390+ ResourceType = ( ResourceTypeEnum ) ( int ) viewModel . ResourceItem . ResourceTypeEnum ,
391+ CatalogueNodeVersionId = viewModel . ResourceItem . Catalogue . CatalogueNodeVersionId ,
392+ ResourceTitle = viewModel . ResourceItem . Title ,
401393 ScormEsrLinkType = ( EsrLinkType ) scormEsrLinkType ,
402394 } ) ;
403395 }
@@ -494,15 +486,24 @@ public async Task<IActionResult> HtmlResourceContent(int resourceReferenceId, st
494486 contentType = "text/html" ;
495487 }
496488
497- var file = await this . fileService . DownloadFileAsync ( contentFilePath , path ) ;
498- if ( file != null )
489+ if ( contentType . Contains ( "video" ) || contentType . Contains ( "audio" ) )
499490 {
500- return this . File ( file . Content , contentType ) ;
491+ var stream = await this . fileService . StreamFileAsync ( contentFilePath , path ) ;
492+ if ( stream != null )
493+ {
494+ return this . File ( stream , contentType , enableRangeProcessing : true ) ;
495+ }
501496 }
502497 else
503498 {
504- return this . Ok ( this . Content ( "No file found" ) ) ;
499+ var file = await this . fileService . DownloadFileAsync ( contentFilePath , path ) ;
500+ if ( file != null )
501+ {
502+ return this . File ( file . Content , contentType ) ;
503+ }
505504 }
505+
506+ return this . Ok ( this . Content ( "No file found" ) ) ;
506507 }
507508 }
508509}
0 commit comments