Raven.Storage.Managed.TransactionStorageActions.ModifyTransactionId C# (CSharp) Method

ModifyTransactionId() public method

public ModifyTransactionId ( System.Guid fromTxId, System.Guid toTxId, System.TimeSpan timeout ) : void
fromTxId System.Guid
toTxId System.Guid
timeout System.TimeSpan
return void
		public void ModifyTransactionId(Guid fromTxId, Guid toTxId, TimeSpan timeout)
		{
			storage.Transactions.UpdateKey(new RavenJObject
			{
				{"txId", toTxId.ToByteArray()},
				{"timeout", SystemTime.UtcNow.Add(timeout)}
			});

			var transactionInformation = new TransactionInformation { Id = toTxId, Timeout = timeout };
			CompleteTransaction(fromTxId, data =>
			{
				var readResult = storage.Documents.Read(new RavenJObject { { "key", data.Key } });
				if (readResult != null)
				{
					((RavenJObject)readResult.Key)["txId"] = toTxId.ToByteArray();
					storage.Documents.UpdateKey(readResult.Key);
				}

				if (data.Delete)
					DeleteDocumentInTransaction(transactionInformation, data.Key, null);
				else
					AddDocumentInTransaction(data.Key, null, data.Data, data.Metadata, transactionInformation);
			});
		}