Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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)
 {
 }
Exemplo n.º 6
0
 Task IDataAccessModelInternal.OnHookAfterSubmitAsync(DataAccessModelHookSubmitContext context)
 {
     return(((IDataAccessModelInternal)this).OnHookBeforeSubmitAsync(context, CancellationToken.None));
 }
Exemplo n.º 7
0
 Task IDataAccessModelInternal.OnHookAfterSubmitAsync(DataAccessModelHookSubmitContext context, CancellationToken cancellationToken)
 {
     return(CallHooksAsync(hook => hook.AfterSubmitAsync(context, cancellationToken)));
 }
Exemplo n.º 8
0
 void IDataAccessModelInternal.OnHookAfterSubmit(DataAccessModelHookSubmitContext context)
 {
     CallHooks(hook => hook.AfterSubmit(context));
 }