Bombsquad.DynamicMedia.Implementations.ResultHandlers.BytesRangeResultHandler.HandleResult C# (CSharp) Method

HandleResult() public method

public HandleResult ( IResult result, IFormatInfo outputFormat, System.Web.HttpRequestBase request, System.Web.HttpResponseBase response ) : bool
result IResult
outputFormat IFormatInfo
request System.Web.HttpRequestBase
response System.Web.HttpResponseBase
return bool
        public bool HandleResult( IResult result, IFormatInfo outputFormat, HttpRequestBase request, HttpResponseBase response )
        {
            response.AddHeader("Accept-Ranges", "bytes");

            Range range;
            if ( !TryGetRequestedRange( request, out range ) )
            {
                return false;
            }

            if (!ValidateIfRangeHeader(request, result))
            {
                return false;
            }

            var offset = range.Start ?? 0;
            var end = range.End.HasValue ? range.End.Value : result.ContentLength - 1;
            var length = end - offset + 1;

            response.AddHeader( "Content-Range", "bytes " + offset + "-" + end + "/" + result.ContentLength );
            response.StatusCode = 206;

            result.Serve( response, offset, length );
            return true;
        }