public virtual void Commit(SqlTransactionalCommandsContext commandsContext, bool forFlush) { foreach (var cache in this.cachesByType) { cache.Value.AssertObjectsAreReadyForCommit(); } try { var context = new DataAccessModelHookSubmitContext(this, forFlush); ((IDataAccessModelInternal)this.DataAccessModel).OnHookBeforeSubmit(context); this.isCommiting = true; this.CommitNew(commandsContext); this.CommitUpdated(commandsContext); this.CommitDeleted(commandsContext); ((IDataAccessModelInternal)this.DataAccessModel).OnHookAfterSubmit(context); } finally { this.isCommiting = false; } foreach (var cache in this.cachesByType) { cache.Value.ProcessAfterCommit(); } }
Task IDataAccessModelInternal.OnHookAfterSubmitAsync(DataAccessModelHookSubmitContext context, CancellationToken cancellationToken) { var localHooks = this.hooks; var tasks = new List <Task>(); if (localHooks != null) { tasks.AddRange(localHooks.Select(hook => hook.AfterSubmitAsync(context, cancellationToken))); } return(Task.WhenAll(tasks)); }
void IDataAccessModelInternal.OnHookAfterSubmit(DataAccessModelHookSubmitContext context) { var localHooks = this.hooks; if (localHooks != null) { foreach (var hook in localHooks) { hook.AfterSubmit(context); } } }
public virtual void AfterSubmit(DataAccessModelHookSubmitContext context) { }
public virtual void BeforeSubmit(DataAccessModelHookSubmitContext context) { }
Task IDataAccessModelInternal.OnHookAfterSubmitAsync(DataAccessModelHookSubmitContext context) { return(((IDataAccessModelInternal)this).OnHookBeforeSubmitAsync(context, CancellationToken.None)); }
Task IDataAccessModelInternal.OnHookAfterSubmitAsync(DataAccessModelHookSubmitContext context, CancellationToken cancellationToken) { return(CallHooksAsync(hook => hook.AfterSubmitAsync(context, cancellationToken))); }
void IDataAccessModelInternal.OnHookAfterSubmit(DataAccessModelHookSubmitContext context) { CallHooks(hook => hook.AfterSubmit(context)); }