Fix DI in FileWriter.TransmitFile

This commit is contained in:
Claus Vium
2019-03-05 19:32:22 +01:00
parent df92df7bd6
commit 9a4a01fb0e
4 changed files with 18 additions and 22 deletions

View File

@@ -15,6 +15,7 @@ namespace Emby.Server.Implementations.HttpServer
{
public class FileWriter : IHttpResult
{
private readonly IStreamHelper _streamHelper;
private ILogger Logger { get; set; }
public IFileSystem FileSystem { get; }
@@ -45,13 +46,15 @@ namespace Emby.Server.Implementations.HttpServer
public string Path { get; set; }
public FileWriter(string path, string contentType, string rangeHeader, ILogger logger, IFileSystem fileSystem)
public FileWriter(string path, string contentType, string rangeHeader, ILogger logger, IFileSystem fileSystem, IStreamHelper streamHelper)
{
if (string.IsNullOrEmpty(contentType))
{
throw new ArgumentNullException(nameof(contentType));
}
_streamHelper = streamHelper;
Path = path;
Logger = logger;
FileSystem = fileSystem;
@@ -147,8 +150,7 @@ namespace Emby.Server.Implementations.HttpServer
}
}
private string[] SkipLogExtensions = new string[]
{
private readonly string[] SkipLogExtensions = {
".js",
".html",
".css"
@@ -165,8 +167,10 @@ namespace Emby.Server.Implementations.HttpServer
}
var path = Path;
var offset = RangeStart;
var count = RangeLength;
if (string.IsNullOrWhiteSpace(RangeHeader) || (RangeStart <= 0 && RangeEnd >= TotalContentLength - 1))
if (string.IsNullOrWhiteSpace(RangeHeader) || RangeStart <= 0 && RangeEnd >= TotalContentLength - 1)
{
var extension = System.IO.Path.GetExtension(path);
@@ -175,20 +179,15 @@ namespace Emby.Server.Implementations.HttpServer
Logger.LogDebug("Transmit file {0}", path);
}
//var count = FileShare == FileShareMode.ReadWrite ? TotalContentLength : 0;
// TODO not DI friendly lol
await response.TransmitFile(path, 0, 0, FileShare, FileSystem, new StreamHelper(), cancellationToken).ConfigureAwait(false);
return;
offset = 0;
count = 0;
}
// TODO not DI friendly lol
await response.TransmitFile(path, RangeStart, RangeLength, FileShare, FileSystem, new StreamHelper(), cancellationToken).ConfigureAwait(false);
await response.TransmitFile(path, offset, count, FileShare, FileSystem, _streamHelper, cancellationToken).ConfigureAwait(false);
}
finally
{
if (OnComplete != null)
{
OnComplete();
}
OnComplete?.Invoke();
}
}
@@ -205,8 +204,5 @@ namespace Emby.Server.Implementations.HttpServer
get => (HttpStatusCode)Status;
set => Status = (int)value;
}
public string StatusDescription { get; set; }
}
}