@ -113,6 +113,7 @@ namespace MediaBrowser.WebDashboard.Api
private readonly ILocalizationManager _localization ;
private readonly IJsonSerializer _jsonSerializer ;
private readonly IAssemblyInfo _assemblyInfo ;
private readonly IMemoryStreamFactory _memoryStreamFactory ;
/// <summary>
/// Initializes a new instance of the <see cref="DashboardService" /> class.
@ -120,7 +121,7 @@ namespace MediaBrowser.WebDashboard.Api
/// <param name="appHost">The app host.</param>
/// <param name="serverConfigurationManager">The server configuration manager.</param>
/// <param name="fileSystem">The file system.</param>
public DashboardService ( IServerApplicationHost appHost , IServerConfigurationManager serverConfigurationManager , IFileSystem fileSystem , ILocalizationManager localization , IJsonSerializer jsonSerializer , IAssemblyInfo assemblyInfo , ILogger logger , IHttpResultFactory resultFactory )
public DashboardService ( IServerApplicationHost appHost , IServerConfigurationManager serverConfigurationManager , IFileSystem fileSystem , ILocalizationManager localization , IJsonSerializer jsonSerializer , IAssemblyInfo assemblyInfo , ILogger logger , IHttpResultFactory resultFactory , IMemoryStreamFactory memoryStreamFactory )
{
_appHost = appHost ;
_serverConfigurationManager = serverConfigurationManager ;
@ -130,6 +131,7 @@ namespace MediaBrowser.WebDashboard.Api
_assemblyInfo = assemblyInfo ;
_logger = logger ;
_resultFactory = resultFactory ;
_memoryStreamFactory = memoryStreamFactory ;
}
/// <summary>
@ -161,7 +163,7 @@ namespace MediaBrowser.WebDashboard.Api
if ( plugin ! = null & & stream ! = null )
{
return _resultFactory . GetStaticResult ( Request , plugin . Version . ToString ( ) . GetMD5 ( ) , null , null , MimeTypes . GetMimeType ( "page.html" ) , ( ) = > GetPackageCreator ( ) . ModifyHtml ( "dummy.html" , stream , null , _appHost . ApplicationVersion . ToString ( ) , null , false )) ;
return _resultFactory . GetStaticResult ( Request , plugin . Version . ToString ( ) . GetMD5 ( ) , null , null , MimeTypes . GetMimeType ( "page.html" ) , ( ) = > GetPackageCreator ( ) . ModifyHtml ( "dummy.html" , stream , null , _appHost . ApplicationVersion . ToString ( ) , null )) ;
}
throw new ResourceNotFoundException ( ) ;
@ -294,7 +296,7 @@ namespace MediaBrowser.WebDashboard.Api
cacheDuration = TimeSpan . FromDays ( 365 ) ;
}
var cacheKey = ( _appHost . ApplicationVersion . ToString ( ) + ( localizationCulture ? ? string . Empty ) + path ) . GetMD5 ( ) ;
var cacheKey = ( _appHost . ApplicationVersion + ( localizationCulture ? ? string . Empty ) + path ) . GetMD5 ( ) ;
return await _resultFactory . GetStaticResult ( Request , cacheKey , null , cacheDuration , contentType , ( ) = > GetResourceStream ( path , localizationCulture ) ) . ConfigureAwait ( false ) ;
}
@ -312,15 +314,13 @@ namespace MediaBrowser.WebDashboard.Api
/// <returns>Task{Stream}.</returns>
private Task < Stream > GetResourceStream ( string path , string localizationCulture )
{
var minify = _serverConfigurationManager . Configuration . EnableDashboardResourceMinification ;
return GetPackageCreator ( )
. GetResource ( path , null , localizationCulture , _appHost . ApplicationVersion . ToString ( ) , minify );
. GetResource ( path , null , localizationCulture , _appHost . ApplicationVersion . ToString ( ) ) ;
}
private PackageCreator GetPackageCreator ( )
{
return new PackageCreator ( _fileSystem , _lo calization, _lo gger, _serverConfigurationManager , _ jsonSerializer ) ;
return new PackageCreator ( _fileSystem , _lo gger, _serverConfigurationManager , _ memoryStreamFactory ) ;
}
private List < string > GetDeployIgnoreExtensions ( )
@ -507,7 +507,7 @@ namespace MediaBrowser.WebDashboard.Api
private async Task DumpFile ( string resourceVirtualPath , string destinationFilePath , string mode , string culture , string appVersion )
{
using ( var stream = await GetPackageCreator ( ) . GetResource ( resourceVirtualPath , mode , culture , appVersion , false ). ConfigureAwait ( false ) )
using ( var stream = await GetPackageCreator ( ) . GetResource ( resourceVirtualPath , mode , culture , appVersion ). ConfigureAwait ( false ) )
{
using ( var fs = _fileSystem . GetFileStream ( destinationFilePath , FileOpenMode . Create , FileAccessMode . Write , FileShareMode . Read ) )
{