using NLog; using NzbDrone.Common.Instrumentation.Extensions; using NzbDrone.Core.Download; using NzbDrone.Core.Messaging.Commands; namespace NzbDrone.Core.IndexerSearch { public class ArtistSearchService : IExecute { private readonly ISearchForReleases _releaseSearchService; private readonly IProcessDownloadDecisions _processDownloadDecisions; private readonly Logger _logger; public ArtistSearchService(ISearchForReleases nzbSearchService, IProcessDownloadDecisions processDownloadDecisions, Logger logger) { _releaseSearchService = nzbSearchService; _processDownloadDecisions = processDownloadDecisions; _logger = logger; } public void Execute(ArtistSearchCommand message) { var decisions = _releaseSearchService.ArtistSearch(message.ArtistId, false, message.Trigger == CommandTrigger.Manual, false).GetAwaiter().GetResult(); var processed = _processDownloadDecisions.ProcessDecisions(decisions).GetAwaiter().GetResult(); _logger.ProgressInfo("Artist search completed. {0} reports downloaded.", processed.Grabbed.Count); } } }