1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2026-04-17 21:26:13 -04:00
Files
Sonarr/src/NzbDrone.Core/Download/Aggregation/RemoteEpisodeAggregationService.cs
2024-06-17 23:39:13 -04:00

49 lines
1.3 KiB
C#

using System;
using System.Collections.Generic;
using NLog;
using NzbDrone.Core.Download.Aggregation.Aggregators;
using NzbDrone.Core.Parser.Model;
namespace NzbDrone.Core.Download.Aggregation
{
public interface IRemoteEpisodeAggregationService
{
RemoteEpisode Augment(RemoteEpisode remoteEpisode);
}
public class RemoteEpisodeAggregationService : IRemoteEpisodeAggregationService
{
private readonly IEnumerable<IAggregateRemoteEpisode> _augmenters;
private readonly Logger _logger;
public RemoteEpisodeAggregationService(IEnumerable<IAggregateRemoteEpisode> augmenters,
Logger logger)
{
_augmenters = augmenters;
_logger = logger;
}
public RemoteEpisode Augment(RemoteEpisode remoteEpisode)
{
if (remoteEpisode == null)
{
return null;
}
foreach (var augmenter in _augmenters)
{
try
{
augmenter.Aggregate(remoteEpisode);
}
catch (Exception ex)
{
_logger.Warn(ex, ex.Message);
}
}
return remoteEpisode;
}
}
}