private void EnsureValidEtag(string key, long attachmentPosition, Guid? etag)
{
if (etag == null)
return;
Reader.Position = attachmentPosition;
var storedHeaders = JObject.Load(new BsonReader(Reader));
var existingEtag = new Guid(storedHeaders.Value<string>("@etag"));
if (existingEtag != etag.Value)
{
throw new ConcurrencyException("PUT attempted on attachment '" + key +
"' using a non current etag")
{
ActualETag = etag.Value,
ExpectedETag = existingEtag
};
}
}