Пример #1
0
        public override void Execute()
        {
            var       broker      = new BrokerService();
            var       transaction = broker.BeginTransaction();
            Exception _ex_        = null;

            try
            {
                foreach (var cmd in _lst)
                {
                    cmd.State = transaction;
                    cmd.Execute();
                }
                broker.CommitTransaction(transaction);
            }
            catch (Exception ex)
            {
                _ex_ = ex;
                broker.RollbackTransaction(transaction);
            }

            if (null != _ex_)
            {
                if (WhenFailed != null)
                {
                    WhenFailed.Execute();
                }
                else
                {
                    throw _ex_;
                }
            }
        }