private RavenJArray GetAttachments(int start, Guid?etag) { var array = new RavenJArray(); var attachmentInfos = _database.GetAttachments(start, 128, etag); foreach (var attachmentInfo in attachmentInfos) { var attachment = _database.GetStatic(attachmentInfo.Key); if (attachment == null) { return(null); } var data = attachment.Data; attachment.Data = () => { var memoryStream = new MemoryStream(); _database.TransactionalStorage.Batch(accessor => data().CopyTo(memoryStream)); memoryStream.Position = 0; return(memoryStream); }; var bytes = attachment.Data().ReadData(); array.Add( new RavenJObject { { "Data", bytes }, { "Metadata", attachmentInfo.Metadata }, { "Key", attachmentInfo.Key }, { "Etag", new RavenJValue(attachmentInfo.Etag.ToString()) } }); } return(array); }