public virtual void Dispose()
        {
            if (disposing)
            {
                return;
            }

            disposing = true;
            client.EndTransaction();
            if (!markCommitted && Committable && TransactionContext.IsOpen)
            {
                RollbackAsync().Wait(); // annoying, but can't dispose asynchronously
            }

            if (transactionContext != null && ShouldDisposeTransaction())
            {
                transactionContext.Dispose();
                transactionContext = null;
            }
        }
 protected BoltTransactionScopeProxy(ITransactionalGraphClient client, BoltTransactionContext transactionContext)
 {
     this.client             = client;
     disposing               = false;
     this.transactionContext = transactionContext;
 }
 public BoltNeo4jTransactionProxy(ITransactionalGraphClient client, BoltTransactionContext transactionContext, bool newScope)
     : base(client, transactionContext)
 {
     doCommitInScope = newScope;
 }