You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.1 KiB
33 lines
1.1 KiB
using TrashLib.Sonarr.Config;
|
|
|
|
namespace TrashLib.Sonarr.ReleaseProfile;
|
|
|
|
public class FilteredProfileData
|
|
{
|
|
private readonly ReleaseProfileConfig _config;
|
|
private readonly ProfileData _profileData;
|
|
|
|
public FilteredProfileData(ProfileData profileData, ReleaseProfileConfig config)
|
|
{
|
|
_profileData = profileData;
|
|
_config = config;
|
|
}
|
|
|
|
public IEnumerable<string> Required => _config.Filter.IncludeOptional
|
|
? _profileData.Required.Concat(_profileData.Optional.Required).ToList()
|
|
: _profileData.Required;
|
|
|
|
public IEnumerable<string> Ignored => _config.Filter.IncludeOptional
|
|
? _profileData.Ignored.Concat(_profileData.Optional.Ignored).ToList()
|
|
: _profileData.Ignored;
|
|
|
|
public IDictionary<int, List<string>> Preferred => _config.Filter.IncludeOptional
|
|
? _profileData.Preferred
|
|
.Union(_profileData.Optional.Preferred)
|
|
.GroupBy(kvp => kvp.Key)
|
|
.ToDictionary(grp => grp.Key, grp => new List<string>(grp.SelectMany(l => l.Value)))
|
|
: _profileData.Preferred;
|
|
|
|
public bool? IncludePreferredWhenRenaming => _profileData.IncludePreferredWhenRenaming;
|
|
}
|