Exemplo n.º 1
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
            }
        }