override public long Seek(long offset, SeekOrigin origin)
{
long pos = 0;
if (null == _cachedBytes)
{
throw ADP.StreamClosed();
}
switch (origin)
{
case SeekOrigin.Begin:
SetInternalPosition(offset, nameof(offset));
break;
case SeekOrigin.Current:
pos = offset + Position;
SetInternalPosition(pos, nameof(offset));
break;
case SeekOrigin.End:
pos = TotalLength + offset;
SetInternalPosition(pos, nameof(offset));
break;
default:
throw ADP.InvalidSeekOrigin(nameof(offset));
}
return pos;
}