Exemplo n.º 1
0
        public List <DownloadDecision> Sync()
        {
            _logger.ProgressInfo("Starting RSS Sync");

            var reports   = _rssFetcherAndParser.Fetch().Concat(_pendingReleaseService.GetPending()).ToList();
            var decisions = _downloadDecisionMaker.GetRssDecision(reports);
            var processed = _processDownloadDecisions.ProcessDecisions(decisions);

            _pendingReleaseService.RemoveGrabbed(processed.Grabbed);
            _pendingReleaseService.RemoveRejected(decisions.Where(d => d.Rejected).ToList());

            var message = String.Format("RSS Sync Completed. Reports found: {0}, Reports grabbed: {1}", reports.Count, processed.Grabbed.Count);

            if (processed.Pending.Any())
            {
                message += ", Reports pending: " + processed.Pending.Count;
            }

            _logger.ProgressInfo(message);

            return(processed.Grabbed.Concat(processed.Pending).ToList());
        }