diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-09-15 13:34:37 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-09-15 13:34:37 -0400 |
| commit | ebec1e159c22131bf6fed1c807595894f92427ae (patch) | |
| tree | 5aba166a6371165d1ef34badeb2a7756fc30a398 /MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs | |
| parent | 333f1ea6a4744b304a5c0991b4d4c3796c97ac16 (diff) | |
update default theme endpoints
Diffstat (limited to 'MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs b/MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs index 115114e3a..356c6fc4d 100644 --- a/MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs +++ b/MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs @@ -92,7 +92,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer { AddResponseHeaders(result, responseHeaders); } - + return result; } @@ -271,32 +271,39 @@ namespace MediaBrowser.Server.Implementations.HttpServer /// </summary> /// <param name="requestContext">The request context.</param> /// <param name="path">The path.</param> + /// <param name="fileShare">The file share.</param> /// <param name="responseHeaders">The response headers.</param> /// <param name="isHeadRequest">if set to <c>true</c> [is head request].</param> /// <returns>System.Object.</returns> /// <exception cref="System.ArgumentNullException">path</exception> - public object GetStaticFileResult(IRequestContext requestContext, string path, IDictionary<string, string> responseHeaders = null, bool isHeadRequest = false) + public object GetStaticFileResult(IRequestContext requestContext, string path, FileShare fileShare = FileShare.Read, IDictionary<string, string> responseHeaders = null, bool isHeadRequest = false) { if (string.IsNullOrEmpty(path)) { throw new ArgumentNullException("path"); } + if (fileShare != FileShare.Read && fileShare != FileShare.ReadWrite) + { + throw new ArgumentException("FileShare must be either Read or ReadWrite"); + } + var dateModified = File.GetLastWriteTimeUtc(path); var cacheKey = path + dateModified.Ticks; - return GetStaticResult(requestContext, cacheKey.GetMD5(), dateModified, null, MimeTypes.GetMimeType(path), () => Task.FromResult(GetFileStream(path)), responseHeaders, isHeadRequest); + return GetStaticResult(requestContext, cacheKey.GetMD5(), dateModified, null, MimeTypes.GetMimeType(path), () => Task.FromResult(GetFileStream(path, fileShare)), responseHeaders, isHeadRequest); } /// <summary> /// Gets the file stream. /// </summary> /// <param name="path">The path.</param> + /// <param name="fileShare">The file share.</param> /// <returns>Stream.</returns> - private Stream GetFileStream(string path) + private Stream GetFileStream(string path, FileShare fileShare) { - return new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read, StreamDefaults.DefaultFileStreamBufferSize, FileOptions.Asynchronous); + return new FileStream(path, FileMode.Open, FileAccess.Read, fileShare, StreamDefaults.DefaultFileStreamBufferSize, FileOptions.Asynchronous); } /// <summary> |
