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 } }