コード例 #1
0
 public DomainObjectCommittingEventArgs(ICommittingEventRegistrar eventRegistrar)
 {
     ArgumentUtility.CheckNotNull("eventRegistrar", eventRegistrar);
     _eventRegistrar = eventRegistrar;
 }
コード例 #2
0
        public void RaiseTransactionCommittingEvent(ReadOnlyCollection <DomainObject> domainObjects, ICommittingEventRegistrar eventRegistrar)
        {
            ArgumentUtility.CheckNotNull("domainObjects", domainObjects);
            ArgumentUtility.CheckNotNull("eventRegistrar", eventRegistrar);

            _listenerCollection.TransactionCommitting(_clientTransaction, domainObjects, eventRegistrar);
            _extensionCollection.Committing(_clientTransaction, domainObjects, eventRegistrar);
            using (EnterScopeOnDemand())
            {
                _clientTransaction.OnCommitting(new ClientTransactionCommittingEventArgs(domainObjects, eventRegistrar));
                // ReSharper disable ForCanBeConvertedToForeach
                for (int i = 0; i < domainObjects.Count; i++)
                {
                    var domainObject = domainObjects[i];
                    if (domainObject.State != StateType.Invalid)
                    {
                        domainObject.OnCommitting(new DomainObjectCommittingEventArgs(eventRegistrar));
                    }
                }
                // ReSharper restore ForCanBeConvertedToForeach
            }
        }
コード例 #3
0
 public void TransactionCommitting(ClientTransaction clientTransaction, ReadOnlyCollection <DomainObject> domainObjects, ICommittingEventRegistrar eventRegistrar)
 {
     throw CreateException();
 }
コード例 #4
0
 public virtual void TransactionCommitting(ClientTransaction clientTransaction, ReadOnlyCollection <DomainObject> domainObjects, ICommittingEventRegistrar eventRegistrar)
 {
     foreach (var listener in _listeners)
     {
         listener.TransactionCommitting(clientTransaction, domainObjects, eventRegistrar);
     }
 }
コード例 #5
0
 public ClientTransactionCommittingEventArgs(ReadOnlyCollection <DomainObject> domainObjects, ICommittingEventRegistrar eventRegistrar)
     : base(domainObjects)
 {
     ArgumentUtility.CheckNotNull("eventRegistrar", eventRegistrar);
     _eventRegistrar = eventRegistrar;
 }
コード例 #6
0
 public virtual void TransactionCommitting(ClientTransaction clientTransaction, ReadOnlyCollection <DomainObject> domainObjects, ICommittingEventRegistrar eventRegistrar)
 {
 }
コード例 #7
0
 public void TransactionCommitting(ClientTransaction clientTransaction, ReadOnlyCollection <DomainObject> domainObjects, ICommittingEventRegistrar eventRegistrar)
 {
     if (s_log.IsDebugEnabled())
     {
         s_log.DebugFormat("{0} TransactionCommitting: {1}", clientTransaction.ID, GetDomainObjectsString(domainObjects));
     }
 }
コード例 #8
0
 public virtual void TransactionCommitting(ClientTransaction clientTransaction, ReadOnlyCollection <DomainObject> domainObjects, ICommittingEventRegistrar eventRegistrar)
 {
     EnsureWriteable(clientTransaction, "TransactionCommitting");
 }
コード例 #9
0
 public override void TransactionCommitting(ClientTransaction clientTransaction, ReadOnlyCollection <DomainObject> domainObjects, ICommittingEventRegistrar eventRegistrar)
 {
     throw new InvalidOperationException("The transport transaction cannot be committed.");
 }
        public void Committing(ClientTransaction clientTransaction, ReadOnlyCollection <DomainObject> changedDomainObjects, ICommittingEventRegistrar eventRegistrar)
        {
            ArgumentUtility.DebugCheckNotNull("changedDomainObjects", changedDomainObjects);

            for (int i = 0; i < Count; i++)
            {
                this[i].Committing(clientTransaction, changedDomainObjects, eventRegistrar);
            }
        }
 public void RaiseTransactionCommittingEvent(ReadOnlyCollection <DomainObject> domainObjects, ICommittingEventRegistrar eventRegistrar)
 {
 }
コード例 #12
0
        public override void TransactionCommitting(ClientTransaction clientTransaction, ReadOnlyCollection <DomainObject> domainObjects, ICommittingEventRegistrar eventRegistrar)
        {
            // Rollback the state of all objects not matched by the filter - we don't want those objects to be committed to the transaction

            Assertion.IsTrue(
                clientTransaction.ActiveTransaction == clientTransaction, "It's not possible to invoke FinishTransport on an inactive transaction.");
            using (clientTransaction.EnterNonDiscardingScope()) // filter must be executed in scope of clientTransaction
            {
                foreach (var domainObject in domainObjects)
                {
                    if (!_filter(domainObject))
                    {
                        RollbackObject(clientTransaction, domainObject);
                    }
                }
            }
        }