public override long Seek(long offset, SeekOrigin origin)
{
switch (origin)
{
case SeekOrigin.Begin:
this.readPosition = offset % this.buffer.Length;
break;
case SeekOrigin.End:
this.readPosition = (this.buffer.Length - offset) % this.buffer.Length;
break;
case SeekOrigin.Current:
this.readPosition = (this.readPosition + offset) % this.buffer.Length;
break;
default:
throw new NotSupportedException();
}
return this.readPosition;
}