internal static void DispatchEvent(EntityEvent entityEvent, Type entityType, BaseEntityContext context, DbEntityEntry entry) { foreach (var eventListener in entitiesChangedListeners.Where(c => TypeHelper.IsSameOrSubclass(c.Key, entityType))) { IEntityListener listener = (IEntityListener)Activator.CreateInstance(eventListener.Value, false); listener.OnEntityEvent(entityEvent, context, entry); } }
public override void PostCreate(BaseEntityContext context, DbEntityEntry createdEntries) { DynamicEntityContext dynamicContext = (DynamicEntityContext)context; var entity = (IEntity)createdEntries.Entity; var attribute = dynamicContext.Create <IAttribute>(); attribute.Name = "AttributeCreatedByTestListener"; entity.Attributes.Add(attribute); context.SaveChanges(); }
public void OnEntityEvent(EventDispatcher.EntityEvent entityEvent, BaseEntityContext context, DbEntityEntry entity) { switch (entityEvent) { case EventDispatcher.EntityEvent.PostUpdate: PreUpdate(context, entity); break; case EventDispatcher.EntityEvent.PostDelete: PostDelete(context, entity); break; case EventDispatcher.EntityEvent.PostCreate: PostCreate(context, entity); break; case EventDispatcher.EntityEvent.PreUpdate: PreUpdate(context, entity); break; case EventDispatcher.EntityEvent.PreDelete: PreDelete(context, entity); break; case EventDispatcher.EntityEvent.PreCreate: PreCreate(context, entity); break; } }
public override void PreDelete(BaseEntityContext context, DbEntityEntry deletingEntries) { throw new NotImplementedException(); }
public override void PostUpdate(BaseEntityContext context, DbEntityEntry updatedEntries) { throw new NotImplementedException(); }
public override void PreCreate(BaseEntityContext context, DbEntityEntry creatingEntries) { var entity = (IEntity)creatingEntries.Entity; entity.Name = "ModifiedByTestListener"; }
public abstract void PreCreate(BaseEntityContext context, DbEntityEntry creatingEntries);
public abstract void PreDelete(BaseEntityContext context, DbEntityEntry deletingEntries);
public abstract void PreUpdate(BaseEntityContext context, DbEntityEntry updatingEntries);
public abstract void PostCreate(BaseEntityContext context, DbEntityEntry createdEntries);
public abstract void PostDelete(BaseEntityContext context, DbEntityEntry deletedEntries);
public abstract void PostUpdate(BaseEntityContext context, DbEntityEntry updatedEntries);