public void RollbackTransaction()
        {
            if (!IsInTransaction)
            {
                throw new ApplicationException("A transaction is not started!");
            }

            _transactionalState.RollbackTransaction();
            _currentState = _defaultState;
        }