public function TriggerPostPersistEvent(ITable $Table) { $this->TriggerEvents($this->PostPersistRowEventMap, $Table); }
public final function Commit(IConnection $Connection, array $TablesOrderedByPersistingDependency, array $TablesOrderedByDiscardingDependency, Relational\Transaction $Transaction) { try { $Connection->BeginTransaction(); $GroupedDiscardedPrimaryKeys = $Transaction->GetDiscardedPrimaryKeyGroups(); foreach ($TablesOrderedByDiscardingDependency as $Table) { $TableName = $Table->GetName(); if (isset($GroupedDiscardedPrimaryKeys[$TableName])) { $this->DeleteRowsByPrimaryKeysQuery($Connection, $Table, $GroupedDiscardedPrimaryKeys[$TableName]); } } foreach ($Transaction->GetDiscardedCriteria() as $Criterion) { $this->DeleteWhereQuery($Connection, $Criterion); } foreach ($Transaction->GetProcedures() as $Procedure) { $this->ExecuteUpdate($Connection, $Procedure); } $GroupedPersistedRows = $Transaction->GetPersistedRowGroups(); foreach ($TablesOrderedByPersistingDependency as $Table) { $TableName = $Table->GetName(); if (isset($GroupedPersistedRows[$TableName])) { $Transaction->TriggerPrePersistEvent($Table); $this->Persister->PersistRows($Connection, $Table, $GroupedPersistedRows[$TableName]); $Transaction->TriggerPostPersistEvent($Table); } } $Connection->CommitTransaction(); } catch (\Exception $Exception) { $Connection->RollbackTransaction(); throw $Exception; } }