protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { return Task<HttpResponseMessage>.Factory.StartNew(() => { bool isHeadMethod = request.Method == HttpMethod.Head; long fileLength = m_Data.Length; ContentInfo contentInfo = GetContentInfoFromRequest(request, fileLength); PartialReadFileStream stream = new PartialReadFileStream(new DownloadStream(isHeadMethod ? new byte[0] : m_Data, m_Logger), contentInfo.From, contentInfo.To); HttpResponseMessage response = new HttpResponseMessage(); response.Content = new StreamContent(stream); SetResponseHeaders(response, contentInfo, fileLength, Path.GetFileName(request.RequestUri.AbsoluteUri)); return response; }); }
protected override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { return(Task <HttpResponseMessage> .Factory.StartNew(() => { bool isHeadMethod = request.Method == HttpMethod.Head; long fileLength = m_Data.Length; ContentInfo contentInfo = GetContentInfoFromRequest(request, fileLength); PartialReadFileStream stream = new PartialReadFileStream(new DownloadStream(isHeadMethod ? new byte[0] : m_Data, m_Logger), contentInfo.From, contentInfo.To); HttpResponseMessage response = new HttpResponseMessage(); response.Content = new StreamContent(stream); SetResponseHeaders(response, contentInfo, fileLength, Path.GetFileName(request.RequestUri.AbsoluteUri)); return response; })); }