Raven.Bundles.Replication.Triggers.RemoveConflictOnPutTrigger.OnPut C# (CSharp) Method

OnPut() public method

public OnPut ( string key, RavenJObject document, RavenJObject metadata, Raven.Abstractions.Data.TransactionInformation transactionInformation ) : void
key string
document RavenJObject
metadata RavenJObject
transactionInformation Raven.Abstractions.Data.TransactionInformation
return void
		public override void OnPut(string key, RavenJObject document, RavenJObject metadata, TransactionInformation transactionInformation)
		{
		   using(Database.DisableAllTriggersForCurrentThread())
		   {
			   metadata.Remove(ReplicationConstants.RavenReplicationConflict);// you can't put conflicts

			   var oldVersion = Database.Get(key, transactionInformation);
			   if (oldVersion == null)
				   return;
			   if (oldVersion.Metadata[ReplicationConstants.RavenReplicationConflict] == null)
				   return;
			   // this is a conflict document, holding document keys in the 
			   // values of the properties
			   foreach (var prop in oldVersion.DataAsJson.Value<RavenJArray>("Conflicts"))
			   {
				   Database.Delete(prop.Value<string>(), null, transactionInformation);
			   }
		   }
		}
	}
RemoveConflictOnPutTrigger