private bool TryGetRequestedRange( HttpRequestBase request, out Range range )
{
var rangeHeader = request.Headers[ "Range" ];
if ( string.IsNullOrEmpty( rangeHeader ) )
{
range = null;
return false;
}
if ( !rangeHeader.StartsWith( RangeByteHeaderStart ) )
{
range = null;
return false;
}
var parts = rangeHeader.Substring( RangeByteHeaderStart.Length ).Split( '-' );
if ( parts.Length != 2 )
{
range = null;
return false;
}
range = new Range
{
Start = string.IsNullOrEmpty( parts[ 0 ] ) ? (long?) null : long.Parse( parts[ 0 ] ),
End = string.IsNullOrEmpty( parts[ 1 ] ) ? (long?) null : long.Parse( parts[ 1 ] )
};
return true;
}