public static bool Publish(IEntity entity, EntityPersistentEventType eventType)
        {
            var _event  = new EntityEventArgs(entity, eventType);
            var subject = new EntityPersistentSubject(entity.EntityType, eventType, _event);

            SynchronizedSubscribeManager.Instance.Publish(subject);

            return(!_event.Cancel);
        }
        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 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);
        }