Ejemplo n.º 1
0
        public void Execute(RefreshSeriesCommand message)
        {
            _eventAggregator.PublishEvent(new SeriesRefreshStartingEvent(message.Trigger == CommandTrigger.Manual));

            if (message.SeriesId.HasValue)
            {
                var series = _seriesService.GetSeries(message.SeriesId.Value);

                try
                {
                    RefreshSeriesInfo(series);
                }
                catch (Exception e)
                {
                    _logger.Error(e, "Couldn't refresh info for {0}", series);
                    RescanSeries(series);
                    throw;
                }
            }
            else
            {
                var allSeries = _seriesService.GetAllSeries().OrderBy(c => c.SortTitle).ToList();

                foreach (var series in allSeries)
                {
                    if (message.Trigger == CommandTrigger.Manual || _checkIfSeriesShouldBeRefreshed.ShouldRefresh(series))
                    {
                        try
                        {
                            RefreshSeriesInfo(series);
                        }
                        catch (Exception e)
                        {
                            _logger.Error(e, "Couldn't refresh info for {0}", series);
                            RescanSeries(series);
                        }
                    }

                    else
                    {
                        _logger.Info("Skipping refresh of series: {0}", series.Title);
                        RescanSeries(series);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public void Execute(RefreshSeriesCommand message)
        {
            _eventAggregator.PublishEvent(new SeriesRefreshStartingEvent());

            if (message.SeriesId.HasValue)
            {
                var series = _seriesService.GetSeries(message.SeriesId.Value);
                RefreshSeriesInfo(series);
            }
            else
            {
                var allSeries = _seriesService.GetAllSeries().OrderBy(c => c.Title).ToList();

                foreach (var series in allSeries)
                {
                    if (_checkIfSeriesShouldBeRefreshed.ShouldRefresh(series))
                    {
                        try
                        {
                            RefreshSeriesInfo(series);
                        }
                        catch (Exception e)
                        {
                            _logger.ErrorException("Couldn't refresh info for {0}".Inject(series), e);
                        }
                    }

                    else
                    {
                        try
                        {
                            _logger.Info("Skipping refresh of series: {0}", series.Title);
                            _diskScanService.Scan(series);
                        }
                        catch (Exception e)
                        {
                            _logger.ErrorException("Couldn't rescan series {0}".Inject(series), e);
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
        public void Execute(RefreshSeriesCommand message)
        {
            var trigger = message.Trigger;
            var isNew   = message.IsNewSeries;

            _eventAggregator.PublishEvent(new SeriesRefreshStartingEvent(trigger == CommandTrigger.Manual));

            if (message.SeriesId.HasValue)
            {
                var series = _seriesService.GetSeries(message.SeriesId.Value);

                try
                {
                    RefreshSeriesInfo(series);
                    RescanSeries(series, isNew, trigger);
                }
                catch (SeriesNotFoundException)
                {
                    _logger.Error("Series '{0}' (tvdbid {1}) was not found, it may have been removed from TheTVDB.", series.Title, series.TvdbId);
                }
                catch (Exception e)
                {
                    _logger.Error(e, "Couldn't refresh info for {0}", series);
                    RescanSeries(series, isNew, trigger);
                    throw;
                }
            }
            else
            {
                var allSeries = _seriesService.GetAllSeries().OrderBy(c => c.SortTitle).ToList();

                foreach (var series in allSeries)
                {
                    if (trigger == CommandTrigger.Manual || _checkIfSeriesShouldBeRefreshed.ShouldRefresh(series))
                    {
                        try
                        {
                            RefreshSeriesInfo(series);
                        }
                        catch (SeriesNotFoundException)
                        {
                            _logger.Error("Series '{0}' (tvdbid {1}) was not found, it may have been removed from TheTVDB.", series.Title, series.TvdbId);
                            continue;
                        }
                        catch (Exception e)
                        {
                            _logger.Error(e, "Couldn't refresh info for {0}", series);
                        }

                        RescanSeries(series, false, trigger);
                    }

                    else
                    {
                        _logger.Info("Skipping refresh of series: {0}", series.Title);
                        RescanSeries(series, false, trigger);
                    }
                }
            }

            _eventAggregator.PublishEvent(new SeriesRefreshCompleteEvent());
        }