private void HandleScanEvents(Series series) { if (series.AddOptions == null) { _episodeAddedService.SearchForRecentlyAdded(series.Id); return; } _logger.Info("[{0}] was recently added, performing post-add actions", series.Title); _episodeMonitoredService.SetEpisodeMonitoredStatus(series, series.AddOptions); // If both options are enabled search for the whole series, which will only include monitored episodes. // This way multiple searches for the same season are skipped, though a season that can't be upgraded may be // searched, but the logs will be more explicit. if (series.AddOptions.SearchForMissingEpisodes && series.AddOptions.SearchForCutoffUnmetEpisodes) { _commandQueueManager.Push(new SeriesSearchCommand(series.Id)); } else { if (series.AddOptions.SearchForMissingEpisodes) { _commandQueueManager.Push(new MissingEpisodeSearchCommand(series.Id)); } if (series.AddOptions.SearchForCutoffUnmetEpisodes) { _commandQueueManager.Push(new CutoffUnmetEpisodeSearchCommand(series.Id)); } } series.AddOptions = null; _seriesService.RemoveAddOptions(series); }
private Response UpdateAll() { //Read from request var request = Request.Body.FromJson <SeasonPassResource>(); foreach (var s in request.Series) { _episodeMonitoredService.SetEpisodeMonitoredStatus(s, request.MonitoringOptions); } return("ok".AsResponse(HttpStatusCode.Accepted)); }
private void HandleScanEvents(Series series) { if (series.AddOptions == null) { _episodeAddedService.SearchForRecentlyAdded(series.Id); return; } _logger.Info("[{0}] was recently added, performing post-add actions", series.Title); _episodeMonitoredService.SetEpisodeMonitoredStatus(series, series.AddOptions); if (series.AddOptions.SearchForMissingEpisodes) { _commandQueueManager.Push(new MissingEpisodeSearchCommand(series.Id)); } series.AddOptions = null; _seriesService.RemoveAddOptions(series); }
private object UpdateAll() { //Read from request var request = Request.Body.FromJson <SeasonPassResource>(); var seriesToUpdate = _seriesService.GetSeries(request.Series.Select(s => s.Id)); foreach (var s in request.Series) { var series = seriesToUpdate.Single(c => c.Id == s.Id); if (s.Monitored.HasValue) { series.Monitored = s.Monitored.Value; } if (s.Seasons != null && s.Seasons.Any()) { foreach (var seriesSeason in series.Seasons) { var season = s.Seasons.FirstOrDefault(c => c.SeasonNumber == seriesSeason.SeasonNumber); if (season != null) { seriesSeason.Monitored = season.Monitored; } } } if (request.MonitoringOptions != null && request.MonitoringOptions.Monitor == MonitorTypes.None) { series.Monitored = false; } _episodeMonitoredService.SetEpisodeMonitoredStatus(series, request.MonitoringOptions); } return(ResponseWithCode("ok", HttpStatusCode.Accepted)); }