public async Task <FeedSubscription> Subscribe(string feedUrl) { if (feedUrl == null) { throw new ArgumentNullException(nameof(feedUrl)); } if (!await RssFeed.IsValid(feedUrl)) { throw new FeedException("Invalid feed url or feed content is not supported"); } var feed = await RssFeed.CreateFromUrl(feedUrl); var subscription = feed.SubscribeTo(); await feedRepository.AddSubscription(subscription); return(subscription); }