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.
34 lines
1.0 KiB
34 lines
1.0 KiB
using System.Diagnostics.CodeAnalysis;
|
|
|
|
namespace Recyclarr.Config.Parsing.PostProcessing.ConfigMerging;
|
|
|
|
public class SonarrConfigMerger : ServiceConfigMerger<SonarrConfigYaml>
|
|
{
|
|
public override SonarrConfigYaml Merge(SonarrConfigYaml a, SonarrConfigYaml b)
|
|
{
|
|
return base.Merge(a, b) with
|
|
{
|
|
MediaNaming = Combine(a.MediaNaming, b.MediaNaming, MergeMediaNaming)
|
|
};
|
|
}
|
|
|
|
[SuppressMessage("ReSharper", "WithExpressionModifiesAllMembers")]
|
|
private static SonarrMediaNamingConfigYaml MergeMediaNaming(
|
|
SonarrMediaNamingConfigYaml a,
|
|
SonarrMediaNamingConfigYaml b)
|
|
{
|
|
return a with
|
|
{
|
|
Series = b.Series ?? a.Series,
|
|
Season = b.Season ?? a.Season,
|
|
Episodes = Combine(a.Episodes, b.Episodes, (a1, b1) => a1 with
|
|
{
|
|
Rename = b1.Rename ?? a1.Rename,
|
|
Standard = b1.Standard ?? a1.Standard,
|
|
Daily = b1.Daily ?? a1.Daily,
|
|
Anime = b1.Anime ?? a1.Anime
|
|
})
|
|
};
|
|
}
|
|
}
|