public bool Publish <TEntity>(IServiceProvider serviceProvider, PersistentEventType eventType) { var _event = new EntityEventTypeArgs(eventType); var subject = new PersistentSubject(typeof(TEntity), eventType, _event); subMgr.Publish(subject); AcceptForServiceProvider(serviceProvider, subject); return(!_event.Cancel); }
public bool Publish(IServiceProvider serviceProvider, IEntity entity, PersistentEventType eventType) { Guard.ArgumentNull(entity, nameof(entity)); var _event = new EntityEventArgs(entity, eventType); var subject = new PersistentSubject(entity.EntityType, eventType, _event); subMgr.Publish(subject); AcceptForServiceProvider(serviceProvider, subject); return(!_event.Cancel); }
public EntitiesArgs(IEnumerable <IEntity> entities, PersistentOperator operType, PersistentEventType eventType) : base(eventType) { Entities = entities; OperType = operType; }
public EntityEventArgs(IEntity entity, PersistentEventType eventType) : base(eventType) { Entity = entity; }
public EntityEventTypeArgs(PersistentEventType eventType) { EventType = eventType; }
public async Task <bool> PublishAsync(IServiceProvider serviceProvider, IEntity entity, PersistentEventType eventType) { Guard.ArgumentNull(entity, nameof(entity)); var _event = new EntityEventArgs(entity, eventType); var subject = new PersistentSubject(entity.EntityType, eventType, _event); await subMgr.PublishAsync(subject); await AcceptForServiceProviderAsync(serviceProvider, subject); return(!_event.Cancel); }
public async Task <bool> PublishAsync <TEntity>(IServiceProvider serviceProvider, PersistentEventType eventType) { var _event = new EntityEventTypeArgs(eventType); var subject = new PersistentSubject(typeof(TEntity), eventType, _event); await subMgr.PublishAsync(subject); return(!_event.Cancel); }
public async Task <bool> PublishAsync(IServiceProvider serviceProvider, IEnumerable <IEntity> entities, PersistentOperator operType, PersistentEventType eventType) { IEntity first; if ((first = entities.FirstOrDefault()) == null) { return(true); } var _event = new EntitiesArgs(entities, operType, eventType); var entityType = first.EntityType; var subject = new PersistentSubject(entityType, eventType, _event); await subMgr.PublishAsync(subject); await AcceptForServiceProviderAsync(serviceProvider, subject); return(!_event.Cancel); }
public async Task <bool> PublishAsync <TEntity>(IServiceProvider serviceProvider, IEnumerable <IEntity> entities, PersistentOperator operType, PersistentEventType eventType) { if (!entities.Any()) { return(true); } var _event = new EntitiesArgs(entities, operType, eventType); var subject = new PersistentSubject(typeof(TEntity), eventType, _event); await subMgr.PublishAsync(subject); await AcceptForServiceProviderAsync(serviceProvider, subject); return(!_event.Cancel); }
/// <summary> /// 初始化 <see cref="PersistentSubject"/> 类的新实例。 /// </summary> /// <param name="entityType">实体类型。</param> /// <param name="eventType">持久化事件类型。</param> /// <param name="argument"></param> public PersistentSubject(Type entityType, PersistentEventType eventType, object argument) { EntityType = entityType; EventType = eventType; Argument = argument; }