Beispiel #1
0
        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;
            _fileSystem   = fileSystem;

            Path        = path;
            Logger      = logger;
            RangeHeader = rangeHeader;

            Headers[HeaderNames.ContentType] = contentType;

            TotalContentLength = fileSystem.GetFileInfo(path).Length;
            Headers[HeaderNames.AcceptRanges] = "bytes";

            if (string.IsNullOrWhiteSpace(rangeHeader))
            {
                Headers[HeaderNames.ContentLength] = TotalContentLength.ToString(CultureInfo.InvariantCulture);
                StatusCode = HttpStatusCode.OK;
            }
            else
            {
                StatusCode = HttpStatusCode.PartialContent;
                SetRangeValues();
            }

            FileShare = FileShareMode.Read;
            Cookies   = new List <Cookie>();
        }
Beispiel #2
0
        public FileWriter(string path, string contentType, string rangeHeader, ILogger logger, IFileSystem fileSystem)
        {
            if (string.IsNullOrEmpty(contentType))
            {
                throw new ArgumentNullException(nameof(contentType));
            }

            Path        = path;
            Logger      = logger;
            RangeHeader = rangeHeader;

            Headers["Content-Type"] = contentType;

            TotalContentLength       = fileSystem.GetFileInfo(path).Length;
            Headers["Accept-Ranges"] = "bytes";

            if (string.IsNullOrWhiteSpace(rangeHeader))
            {
                Headers["Content-Length"] = TotalContentLength.ToString(UsCulture);
                StatusCode = HttpStatusCode.OK;
            }
            else
            {
                StatusCode = HttpStatusCode.PartialContent;
                SetRangeValues();
            }

            FileShare = FileShareMode.Read;
            Cookies   = new List <Cookie>();
        }