mirror of
https://github.com/Sonarr/Sonarr.git
synced 2026-04-17 21:26:13 -04:00
49 lines
1.3 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|