private async Task PublishSequentialAsync(ICancellableAsyncNotification notification, CancellationToken cancellationToken, IEnumerable <CancellableAsyncNotificationHandlerWrapper> notificationHandlers) { foreach (var handler in notificationHandlers) { await handler.Handle(notification, cancellationToken); } }
public Task PublishAsync(ICancellableAsyncNotification notification, CancellationToken cancellationToken) { var notificationHandlers = GetNotificationHandlers(notification) .Select(handler => handler.Handle(notification, cancellationToken)) .ToArray(); return(Task.WhenAll(notificationHandlers)); }
private Task PublishParallelAsync(ICancellableAsyncNotification notification, CancellationToken cancellationToken, IEnumerable <CancellableAsyncNotificationHandlerWrapper> notificationHandlers) { var tasks = notificationHandlers .Select(handler => handler.Handle(notification, cancellationToken)); return(Task.WhenAll(tasks)); }
public async Task PublishAsync(ICancellableAsyncNotification notification, CancellationToken cancellationToken) { var notificationHandlers = GetNotificationHandlers(notification); foreach (var handler in notificationHandlers) { await handler.Handle(notification, cancellationToken); } }
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);
private IEnumerable <CancellableAsyncNotificationHandlerWrapper> GetNotificationHandlers(ICancellableAsyncNotification notification) { return(GetNotificationHandlers <CancellableAsyncNotificationHandlerWrapper>(notification, typeof(ICancellableAsyncNotificationHandler <>), typeof(CancellableAsyncNotificationHandlerWrapper <>))); }
public abstract Task Handle(ICancellableAsyncNotification message, CancellationToken cancellationToken);
public async Task PublishAsync(ICancellableAsyncNotification notification, CancellationToken cancellationToken) { using (RequiredScope()) await _mediator.PublishAsync(notification, cancellationToken); }
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"); }
public Task PublishAsync(ICancellableAsyncNotification notification, CancellationToken cancellationToken) { _logger.LogTrace("PublishAsync {@notification}", notification); return(_inner.PublishAsync(notification, cancellationToken)); }
public Task PublishAsync(ICancellableAsyncNotification notification, CancellationToken cancellationToken) { throw new NotImplementedException(); }