Example #1
0
 private async Task PublishSequentialAsync(ICancellableAsyncNotification notification, CancellationToken cancellationToken, IEnumerable <CancellableAsyncNotificationHandlerWrapper> notificationHandlers)
 {
     foreach (var handler in notificationHandlers)
     {
         await handler.Handle(notification, cancellationToken);
     }
 }
Example #2
0
        public Task PublishAsync(ICancellableAsyncNotification notification, CancellationToken cancellationToken)
        {
            var notificationHandlers = GetNotificationHandlers(notification)
                                       .Select(handler => handler.Handle(notification, cancellationToken))
                                       .ToArray();

            return(Task.WhenAll(notificationHandlers));
        }
Example #3
0
        private Task PublishParallelAsync(ICancellableAsyncNotification notification, CancellationToken cancellationToken,
                                          IEnumerable <CancellableAsyncNotificationHandlerWrapper> notificationHandlers)
        {
            var tasks = notificationHandlers
                        .Select(handler => handler.Handle(notification, cancellationToken));

            return(Task.WhenAll(tasks));
        }
Example #4
0
        public async Task PublishAsync(ICancellableAsyncNotification notification, CancellationToken cancellationToken)
        {
            var notificationHandlers = GetNotificationHandlers(notification);

            foreach (var handler in notificationHandlers)
            {
                await handler.Handle(notification, cancellationToken);
            }
        }
Example #5
0
        public Task PublishAsync(ICancellableAsyncNotification notification, CancellationToken cancellationToken)
        {
            var notificationHandlers = GetNotificationHandlers(notification);

            if (_publishOption == PublishAsyncOptions.Parallel)
            {
                return(PublishParallelAsync(notification, cancellationToken, notificationHandlers));
            }
            else
            {
                return(PublishSequentialAsync(notification, cancellationToken, notificationHandlers));
            }
        }
 public abstract Task Handle(ICancellableAsyncNotification message, CancellationToken canellationToken);
Example #7
0
 private IEnumerable <CancellableAsyncNotificationHandlerWrapper> GetNotificationHandlers(ICancellableAsyncNotification notification)
 {
     return(GetNotificationHandlers <CancellableAsyncNotificationHandlerWrapper>(notification,
                                                                                 typeof(ICancellableAsyncNotificationHandler <>),
                                                                                 typeof(CancellableAsyncNotificationHandlerWrapper <>)));
 }
Example #8
0
 public abstract Task Handle(ICancellableAsyncNotification message, CancellationToken cancellationToken);
 public async Task PublishAsync(ICancellableAsyncNotification notification, CancellationToken cancellationToken)
 {
     using (RequiredScope())
         await _mediator.PublishAsync(notification, cancellationToken);
 }
Example #10
0
 public virtual Task PublishAsync(ICancellableAsyncNotification notification, CancellationToken cancellationToken)
 {
     return(_mediator.PublishAsync(notification, cancellationToken));
 }
 public Task PublishAsync(
     ICancellableAsyncNotification notification,
     CancellationToken cancellationToken)
 {
     throw new NotSupportedException("Cancellation not supported yet");
 }
Example #12
0
 public Task PublishAsync(ICancellableAsyncNotification notification, CancellationToken cancellationToken)
 {
     _logger.LogTrace("PublishAsync {@notification}", notification);
     return(_inner.PublishAsync(notification, cancellationToken));
 }
Example #13
0
 public Task PublishAsync(ICancellableAsyncNotification notification, CancellationToken cancellationToken)
 {
     throw new NotImplementedException();
 }