public void AddAttachment(string key, Guid? etag, byte[] data, JObject headers)
{
var attachmentPosition = Mutator.Attachments.FindValue(key);
headers["@etag"] = new JValue(DocumentDatabase.CreateSequentialUuid().ToString());
if (attachmentPosition == null)
{
Mutator.IncrementAttachmentCount();
}
else
{
EnsureValidEtag(key, attachmentPosition.Value, etag);
}
var position = Writer.Position;
headers.WriteTo(new BsonWriter(Writer));
BinaryWriter.Write7BitEncodedInt(data.Length);
Writer.Write(data, 0, data.Length);
Mutator.Attachments.Add(key, position);
logger.DebugFormat("Adding attachment {0}", key);
}