Raven.Database.DocumentDatabase.PutStatic C# (CSharp) Method

PutStatic() public method

public PutStatic ( string name, System.Guid etag, byte data, RavenJObject metadata ) : void
name string
etag System.Guid
data byte
metadata RavenJObject
return void
		public void PutStatic(string name, Guid? etag, byte[] data, RavenJObject metadata)
		{
			if (name == null) throw new ArgumentNullException("name");
			if (Encoding.Unicode.GetByteCount(name) >= 255)
				throw new ArgumentException("The key must be a maximum of 255 bytes in unicode, 127 characters", "name");

			Guid newEtag = Guid.Empty;
			TransactionalStorage.Batch(actions =>
			{
				AssertAttachmentPutOperationNotVetoed(name, metadata, data);

				AttachmentPutTriggers.Apply(trigger => trigger.OnPut(name, data, metadata));

				newEtag = actions.Attachments.AddAttachment(name, etag, data, metadata);

				AttachmentPutTriggers.Apply(trigger => trigger.AfterPut(name, data, metadata, newEtag));

				workContext.ShouldNotifyAboutWork();
			});

			TransactionalStorage
				.ExecuteImmediatelyOrRegisterForSyncronization(() => AttachmentPutTriggers.Apply(trigger => trigger.AfterCommit(name, data, metadata, newEtag)));

		}