public void Execute(MoviesSearchCommand message)
        {
            var downloadedCount = 0;

            foreach (var movieId in message.MovieIds)
            {
                var movie = _movieService.GetMovie(movieId);

                if (!movie.Monitored && message.Trigger != CommandTrigger.Manual)
                {
                    _logger.Debug("Movie {0} is not monitored, skipping search", movie.Title);
                    continue;
                }

                var decisions = _releaseSearchService.MovieSearch(movieId, false, false);
                downloadedCount += _processDownloadDecisions.ProcessDecisions(decisions).Grabbed.Count;
            }

            _logger.ProgressInfo("Movie search completed. {0} reports downloaded.", downloadedCount);
        }
        private List <ReleaseResource> GetMovieReleases(int movieId)
        {
            try
            {
                var decisions            = _releaseSearchService.MovieSearch(movieId, true, true);
                var prioritizedDecisions = _prioritizeDownloadDecision.PrioritizeDecisionsForMovies(decisions);

                return(MapDecisions(prioritizedDecisions));
            }
            catch (SearchFailedException ex)
            {
                throw new NzbDroneClientException(HttpStatusCode.BadRequest, ex.Message);
            }
            catch (Exception ex)
            {
                _logger.Error(ex, "Movie search failed: " + ex.Message);
            }

            return(new List <ReleaseResource>());
        }