/// <summary> /// Subscribe data access event in global area /// </summary> /// <param name="eventHandler">Event handler</param> public void SubscribeAll(IDataAccessEventHandler eventHandler) { if (eventHandler == null) { return; } overallDataAccessEventHandlerCollection.Add(eventHandler); }
/// <summary> /// Subscribe entity data access event /// </summary> /// <typeparam name="TEvent">Event type</typeparam> /// <param name="entityType">Entity type</param> /// <param name="eventHandler">Event handler</param> public void SubscribeEntity <TEvent>(Type entityType, IDataAccessEventHandler eventHandler) { if (entityType == null || eventHandler == null) { return; } var eventType = typeof(TEvent); SubscribeEntity(entityType, eventType, eventHandler); }
/// <summary> /// Subscribe entity data access event in global area /// </summary> /// <param name="entityType">Entity type</param> /// <param name="eventHandler">handler</param> public void SubscribeEntityAll(Type entityType, IDataAccessEventHandler eventHandler) { if (entityType == null || eventHandler == null) { return; } if (!entityOverallEventHandlerCollection.TryGetValue(entityType.GUID, out var eventHandlers) || eventHandlers.IsNullOrEmpty()) { eventHandlers = new List <IDataAccessEventHandler>(); } eventHandlers.Add(eventHandler); entityOverallEventHandlerCollection[entityType.GUID] = eventHandlers; }
/// <summary> /// Subscribe data access event /// </summary> /// <param name="eventType">Event type</param> /// <param name="eventHandler">Event handler</param> public void Subscribe(Type eventType, IDataAccessEventHandler eventHandler) { if (eventHandler == null || eventType == null) { return; } if (!typeof(IDataAccessEvent).IsAssignableFrom(eventType)) { throw new EZNEWException($"{nameof(eventType.FullName)} not implementation {nameof(IDataAccessEvent)}"); } if (!specificDataAccessEventHandlerCollection.TryGetValue(eventType.GUID, out List <IDataAccessEventHandler> eventHandlers) || eventHandlers == null) { eventHandlers = new List <IDataAccessEventHandler>(); } eventHandlers.Add(eventHandler); specificDataAccessEventHandlerCollection[eventType.GUID] = eventHandlers; }
/// <summary> /// Subscribe aggregate function event /// </summary> /// <param name="eventHandler">Event handler</param> /// <param name="applyToEntity">Apply to entity</param> /// <param name="entityTypes">Entity types</param> public static void SubscribeAggregateFunction(IDataAccessEventHandler eventHandler, bool applyToEntity = false, params Type[] entityTypes) { if (eventHandler == null || (applyToEntity && entityTypes.IsNullOrEmpty())) { return; } if (applyToEntity) { foreach (var entity in entityTypes) { SubscribeEntity <AggregateFunctionEvent>(entity, eventHandler); } } else { Subscribe <AggregateFunctionEvent>(eventHandler); } }
/// <summary> /// Subscribe entity data access event /// </summary> /// <param name="entityType">Entity type</param> /// <param name="eventType">Event type</param> /// <param name="eventHandler">Event handler</param> public void SubscribeEntity(Type entityType, Type eventType, IDataAccessEventHandler eventHandler) { if (entityType == null || eventType == null || eventHandler == null) { return; } if (!typeof(IDataAccessEvent).IsAssignableFrom(eventType)) { throw new EZNEWException($"{nameof(eventType.FullName)} not implementation {nameof(IDataAccessEvent)}"); } if (!entityDataAccessEventHandlerCollection.TryGetValue(entityType.GUID, out Dictionary <Guid, List <IDataAccessEventHandler> > entityEventHandlers) || entityEventHandlers == null) { entityEventHandlers = new Dictionary <Guid, List <IDataAccessEventHandler> >(); } if (!entityEventHandlers.TryGetValue(eventType.GUID, out var eventHandlers) || eventHandlers.IsNullOrEmpty()) { eventHandlers = new List <IDataAccessEventHandler>(); } eventHandlers.Add(eventHandler); entityEventHandlers[eventType.GUID] = eventHandlers; entityDataAccessEventHandlerCollection[entityType.GUID] = entityEventHandlers; }
/// <summary> /// Subscribe entity data access event /// </summary> /// <typeparam name="TEntity">Entity type</typeparam> /// <typeparam name="TEvent">Event type</typeparam> /// <param name="eventHandler">Event handler</param> public static void SubscribeEntity <TEntity, TEvent>(IDataAccessEventHandler eventHandler) where TEvent : class, IDataAccessEvent { SubscribeEntity <TEvent>(typeof(TEntity), eventHandler); }
/// <summary> /// Subscribe entity data access event /// </summary> /// <typeparam name="TEvent">Event type</typeparam> /// <param name="entityType">Entity type</param> /// <param name="eventHandler">Event handler</param> public static void SubscribeEntity <TEvent>(Type entityType, IDataAccessEventHandler eventHandler) where TEvent : class, IDataAccessEvent { SubscribeEntity(entityType, typeof(TEvent), eventHandler); }
/// <summary> /// Subscribe entity data access event /// </summary> /// <param name="entityType">Entity type</param> /// <param name="eventType">Event type</param> /// <param name="handler">Event handler</param> public static void SubscribeEntity(Type entityType, Type eventType, IDataAccessEventHandler handler) { GlobalDataAccessEventManager.SubscribeEntity(entityType, eventType, handler); }
/// <summary> /// Subscribe entity data access event in global area /// </summary> /// <param name="eventHandler">Event handler</param> public static void SubscribeEntityAll <T>(IDataAccessEventHandler eventHandler) { SubscribeEntityAll(typeof(T), eventHandler); }
/// <summary> /// Subscribe data access event /// </summary> /// <param name="eventType">Event type</param> /// <param name="eventHandler">Event handler</param> public static void Subscribe(Type eventType, IDataAccessEventHandler eventHandler) { GlobalDataAccessEventManager.Subscribe(eventType, eventHandler); }
/// <summary> /// Subscribe data access event in global area /// </summary> /// <param name="eventhandler">Event handler</param> public static void SubscribeAll(IDataAccessEventHandler eventhandler) { GlobalDataAccessEventManager.SubscribeAll(eventhandler); }
/// <summary> /// Subscribe entity data access event in global area /// </summary> /// <param name="eventHandler">Event handler</param> public void SubscribeEntityAll <T>(IDataAccessEventHandler eventHandler) { var entityType = typeof(T); SubscribeEntityAll(entityType, eventHandler); }
/// <summary> /// Subscribe data access event /// </summary> /// <typeparam name="TEvent">Event type</typeparam> /// <param name="eventHandler">Event handler</param> public void Subscribe <TEvent>(IDataAccessEventHandler eventHandler) where TEvent : class, IDataAccessEvent { Subscribe(typeof(TEvent), eventHandler); }