Example #1
0
        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));
        }