/// <summary>
        /// Initializes a new instance of the <see cref="RssFeedUpdaterService"/> class.
        /// </summary>
        /// <param name="logger">Logger.</param>
        /// <param name="reteOrgRssFeed">ReteOrgRssFeed.</param>
        /// <param name="feedDAO">FeedDAO.</param>
        /// <param name="seriesDAO">SeriesDAO.</param>
        /// <param name="subscriptionDAO">SubscriptionDAO.</param>
        /// <param name="seriesCoverService">SeriesCoverService.</param>
        /// <param name="configuration">IConfiguration.</param>
        public RssFeedUpdaterService(ILogger logger, ReteOrgRssFeed reteOrgRssFeed, IFeedDAO feedDAO, ISeriesDAO seriesDAO, ISubscriptionDAO subscriptionDAO, SeriesCoverService seriesCoverService, IConfiguration configuration)
        {
            this.logger = logger != null?logger.CreateScope(nameof(RssFeedUpdaterService)) : throw new ArgumentNullException(nameof(logger));

            this.configuration      = configuration ?? throw new ArgumentNullException(nameof(configuration));
            this.reteOrgRssFeed     = reteOrgRssFeed ?? throw new ArgumentNullException(nameof(reteOrgRssFeed));
            this.feedDAO            = feedDAO ?? throw new ArgumentNullException(nameof(feedDAO));
            this.seriesDAO          = seriesDAO ?? throw new ArgumentNullException(nameof(seriesDAO));
            this.subscriptionDAO    = subscriptionDAO ?? throw new ArgumentNullException(nameof(subscriptionDAO));
            this.seriesCoverService = seriesCoverService ?? throw new ArgumentNullException(nameof(seriesCoverService));
        }
Example #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RssFeedService"/> class.
 /// </summary>
 /// <param name="currentUserProvider">CurrentUserProvider.</param>
 /// <param name="logger">Logger.</param>
 /// <param name="torrentFileDownloader">TorrentFileDownloader.</param>
 /// <param name="userDAO">UserDAO.</param>
 /// <param name="feedDAO">FeedDAO.</param>
 /// <param name="seriesDAO">SeriesDAO.</param>
 /// <param name="configuration">IConfiguration.</param>
 public RssFeedService(
     ICurrentUserProvider currentUserProvider,
     ILogger logger,
     TorrentFileDownloader torrentFileDownloader,
     IUserDAO userDAO,
     IFeedDAO feedDAO,
     ISeriesDAO seriesDAO,
     IConfiguration configuration)
 {
     this.logger                = logger == null ? throw new ArgumentNullException(nameof(logger)) : logger.CreateScope(nameof(RssFeedService));
     this.seriesDAO             = seriesDAO ?? throw new ArgumentNullException(nameof(seriesDAO));
     this.feedDAO               = feedDAO ?? throw new ArgumentNullException(nameof(feedDAO));
     this.userDAO               = userDAO ?? throw new ArgumentNullException(nameof(userDAO));
     this.currentUserProvider   = currentUserProvider ?? throw new ArgumentNullException(nameof(currentUserProvider));
     this.torrentFileDownloader = torrentFileDownloader ?? throw new ArgumentNullException(nameof(torrentFileDownloader));
     this.configuration         = configuration ?? throw new ArgumentNullException(nameof(configuration));
 }
        public static async Task RunUpdateProcess(IUserDAO userDao, IFeedDAO feedDao, RssFeedUpdaterService feedService, ILogger logger)
        {
            try
            {
                var deletedUserIds = await userDao.DeleteOldUsersAsync();

                foreach (var userId in deletedUserIds)
                {
                    await feedDao.DeleteAsync(userId);
                }

                await feedService.UpdateAsync();
            }
            catch (Exception ex)
            {
                logger.Log(ex);
                if (ex.InnerException != null)
                {
                    logger.Log(ex.InnerException);
                }
            }
        }