private TItem ReadItem(long index) { var buffer = new byte[_itemSize]; _stream.Seek(index, SeekOrigin.Begin); var bytesRead = _stream.Read(buffer, 0, _itemSize); if (bytesRead != _itemSize) { var msg = string.Format( CultureInfo.InvariantCulture, "Stream repository item is corrupted! Read item at index '{0}'. Expected item size '{1}' but was read '{2}' size.", index, _itemSize, bytesRead); throw new ItemCorruptedException(msg); } return(_streamMapper.Convert(buffer)); }