Ejemplo n.º 1
0
        private Action <DbContext> RaiseTheBeforeEvent(EntityEntry entry, DbContext dbContext)
        {
            var tDbContext = (TDbContext)dbContext;
            var triggers   = TriggerEntityInvokers <TDbContext> .Get(entry.Entity.GetType());

            switch (entry.State)
            {
            case EntityState.Added:
                triggers.RaiseInserting(entry.Entity, tDbContext);
                if (entry.State == EntityState.Added)
                {
                    return(context => triggers.RaiseInserted(entry.Entity, (TDbContext)context));
                }
                break;

            case EntityState.Deleted:
                triggers.RaiseDeleting(entry.Entity, tDbContext);
                if (entry.State == EntityState.Deleted)
                {
                    return(context => triggers.RaiseDeleted(entry.Entity, (TDbContext)context));
                }
                break;

            case EntityState.Modified:
                triggers.RaiseUpdating(entry.Entity, tDbContext);
                if (entry.State == EntityState.Modified)
                {
                    return(context => triggers.RaiseUpdated(entry.Entity, (TDbContext)context));
                }
                break;
            }
            return(null);
        }
Ejemplo n.º 2
0
        private static Boolean RaiseTheFailedEvents(TDbContext dbContext, EntityEntry entry, Exception exception, Boolean swallow)
        {
            switch (entry.State)
            {
            case EntityState.Added:
                return(TriggerEntityInvokers <TDbContext> .Get(entry.Entity.GetType()).RaiseInsertFailed(entry.Entity, dbContext, exception, swallow));

            case EntityState.Modified:
                return(TriggerEntityInvokers <TDbContext> .Get(entry.Entity.GetType()).RaiseUpdateFailed(entry.Entity, dbContext, exception, swallow));

            case EntityState.Deleted:
                return(TriggerEntityInvokers <TDbContext> .Get(entry.Entity.GetType()).RaiseDeleteFailed(entry.Entity, dbContext, exception, swallow));

            default:
                return(swallow);
            }
        }
        private static void RaiseTheFailedEvents(TDbContext dbContext, IServiceProvider serviceProvider, EntityEntry entry, Exception exception, ref Boolean swallow)
        {
            switch (entry.State)
            {
            case EntityState.Added:
                TriggerEntityInvokers <TDbContext> .Get(entry.Entity.GetType()).RaiseInsertFailed(serviceProvider, entry.Entity, dbContext, exception, ref swallow);

                break;

            case EntityState.Modified:
                TriggerEntityInvokers <TDbContext> .Get(entry.Entity.GetType()).RaiseUpdateFailed(serviceProvider, entry.Entity, dbContext, exception, ref swallow);

                break;

            case EntityState.Deleted:
                TriggerEntityInvokers <TDbContext> .Get(entry.Entity.GetType()).RaiseDeleteFailed(serviceProvider, entry.Entity, dbContext, exception, ref swallow);

                break;
            }
        }
        private static Action <DbContext> RaiseTheBeforeEvent(EntityEntry entry, DbContext dbContext, IServiceProvider serviceProvider, ref Boolean cancel)
        {
            var tDbContext           = (TDbContext)dbContext;
            var entityType           = entry.Entity.GetType();
            var triggerEntityInvoker = TriggerEntityInvokers <TDbContext> .Get(entityType);

            switch (entry.State)
            {
            case EntityState.Added:
                triggerEntityInvoker.RaiseInserting(serviceProvider, entry.Entity, tDbContext, ref cancel);
                return(context => triggerEntityInvoker.RaiseInserted(serviceProvider, entry.Entity, (TDbContext)context));

            case EntityState.Deleted:
                triggerEntityInvoker.RaiseDeleting(serviceProvider, entry.Entity, tDbContext, ref cancel);
                return(context => triggerEntityInvoker.RaiseDeleted(serviceProvider, entry.Entity, (TDbContext)context));

            case EntityState.Modified:
                triggerEntityInvoker.RaiseUpdating(serviceProvider, entry.Entity, tDbContext, ref cancel);
                return(context => triggerEntityInvoker.RaiseUpdated(serviceProvider, entry.Entity, (TDbContext)context));
            }
            return(null);
        }