예제 #1
0
        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);
        }