public IDisposable Subscribe(IFeedItemSink feedItemSink) { return(_feedItemSourceImplementation.Subscribe(async item => { try { await feedItemSink.OnNextFeedItemAsync(item, SourceName); } catch (Exception e) { _logger.LogError(e, $"Feed item '{item.Id}' from source '{SourceName}' was not written to sink."); } })); }
public FeedItemSourceSubscriptionManager(FeedItemSourceProvider provider, IFeedItemSink feedSink) { _subscriptions = provider.GetAll().Select(x => x.Subscribe(feedSink)).ToList(); }