diff --git a/src/.editorconfig b/src/.editorconfig
index 2981344b..15f6c1de 100644
--- a/src/.editorconfig
+++ b/src/.editorconfig
@@ -83,7 +83,7 @@ dotnet_diagnostic.ca1027.severity = warning
dotnet_diagnostic.ca1028.severity = warning
dotnet_diagnostic.ca1030.severity = warning
dotnet_diagnostic.ca1031.severity = warning
-dotnet_diagnostic.ca1032.severity = warning
+dotnet_diagnostic.ca1032.severity = none
dotnet_diagnostic.ca1033.severity = warning
dotnet_diagnostic.ca1034.severity = warning
dotnet_diagnostic.ca1036.severity = none
@@ -98,12 +98,12 @@ dotnet_diagnostic.ca1050.severity = suggestion
dotnet_diagnostic.ca1051.severity = none
dotnet_diagnostic.ca1052.severity = warning
dotnet_diagnostic.ca1054.severity = warning
-dotnet_diagnostic.ca1055.severity = warning
-dotnet_diagnostic.ca1056.severity = warning
+dotnet_diagnostic.ca1055.severity = none
+dotnet_diagnostic.ca1056.severity = none
dotnet_diagnostic.ca1058.severity = warning
dotnet_diagnostic.ca1060.severity = warning
dotnet_diagnostic.ca1061.severity = suggestion
-dotnet_diagnostic.ca1062.severity = warning
+dotnet_diagnostic.ca1062.severity = none
dotnet_diagnostic.ca1063.severity = warning
dotnet_diagnostic.ca1064.severity = warning
dotnet_diagnostic.ca1065.severity = warning
@@ -113,7 +113,7 @@ dotnet_diagnostic.ca1068.severity = suggestion
dotnet_diagnostic.ca1069.severity = suggestion
dotnet_diagnostic.ca1070.severity = suggestion
dotnet_diagnostic.ca1200.severity = none
-dotnet_diagnostic.ca1303.severity = warning
+dotnet_diagnostic.ca1303.severity = none
dotnet_diagnostic.ca1304.severity = none
dotnet_diagnostic.ca1305.severity = none
dotnet_diagnostic.ca1307.severity = warning
@@ -175,7 +175,7 @@ dotnet_diagnostic.ca1837.severity = suggestion
dotnet_diagnostic.ca1838.severity = none
dotnet_diagnostic.ca2000.severity = warning
dotnet_diagnostic.ca2002.severity = warning
-dotnet_diagnostic.ca2007.severity = warning
+dotnet_diagnostic.ca2007.severity = none
dotnet_diagnostic.ca2008.severity = warning
dotnet_diagnostic.ca2009.severity = suggestion
dotnet_diagnostic.ca2011.severity = suggestion
@@ -202,7 +202,7 @@ dotnet_diagnostic.ca2217.severity = warning
dotnet_diagnostic.ca2219.severity = suggestion
dotnet_diagnostic.ca2225.severity = warning
dotnet_diagnostic.ca2226.severity = warning
-dotnet_diagnostic.ca2227.severity = warning
+dotnet_diagnostic.ca2227.severity = none
dotnet_diagnostic.ca2229.severity = none
dotnet_diagnostic.ca2231.severity = suggestion
dotnet_diagnostic.ca2234.severity = warning
@@ -774,7 +774,7 @@ dotnet_style_qualification_for_field = false:suggestion
dotnet_style_qualification_for_method = false:suggestion
dotnet_style_qualification_for_property = false:suggestion
dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion
-file_header_template =
+file_header_template =
# ReSharper properties
resharper_accessor_owner_body = expression_body
@@ -1063,7 +1063,7 @@ resharper_remove_blank_lines_near_braces_in_declarations = true
resharper_remove_this_qualifier = true
resharper_requires_expression_braces = next_line
resharper_resx_attribute_indent = single_indent
-resharper_resx_linebreak_before_elements =
+resharper_resx_linebreak_before_elements =
resharper_resx_max_blank_lines_between_tags = 0
resharper_resx_max_line_length = 2147483647
resharper_resx_pi_attribute_style = do_not_touch
@@ -1286,7 +1286,7 @@ resharper_xmldoc_wrap_lines = true
resharper_xmldoc_wrap_tags_and_pi = true
resharper_xmldoc_wrap_text = true
resharper_xml_attribute_indent = align_by_first_attribute
-resharper_xml_linebreak_before_elements =
+resharper_xml_linebreak_before_elements =
resharper_xml_max_blank_lines_between_tags = 2
resharper_xml_max_line_length = 120
resharper_xml_pi_attribute_style = do_not_touch
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index ce29fcc0..fee94f68 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -10,6 +10,7 @@
https://youtrack.jetbrains.com/issue/RIDER-55142
AllEnabledByDefault
-->
+ true
$(MSBuildThisFileDirectory)
@@ -21,6 +22,7 @@
+
diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets
index b77e6e85..ac4c564d 100644
--- a/src/Directory.Build.targets
+++ b/src/Directory.Build.targets
@@ -18,11 +18,14 @@
-
- true
-
- true
+ all
+
+
+ all
+
+
+ all
diff --git a/src/Trash.Tests/Command/CliTypeActivatorTest.cs b/src/Trash.Tests/Command/CliTypeActivatorTest.cs
index 62c33df9..045fbb0f 100644
--- a/src/Trash.Tests/Command/CliTypeActivatorTest.cs
+++ b/src/Trash.Tests/Command/CliTypeActivatorTest.cs
@@ -15,11 +15,11 @@ namespace Trash.Tests.Command
{
}
- public class StubCommand : IServiceCommand
+ private class StubCommand : IServiceCommand
{
public bool Preview => false;
public bool Debug => false;
- public List? Config => null;
+ public ICollection? Config => null;
public string CacheStoragePath => "";
}
diff --git a/src/Trash.Tests/Config/ConfigurationLoaderTest.cs b/src/Trash.Tests/Config/ConfigurationLoaderTest.cs
index 3d13deba..bd39b083 100644
--- a/src/Trash.Tests/Config/ConfigurationLoaderTest.cs
+++ b/src/Trash.Tests/Config/ConfigurationLoaderTest.cs
@@ -1,4 +1,3 @@
-using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Abstractions;
@@ -24,11 +23,6 @@ namespace Trash.Tests.Config
private TextReader GetResourceData(string file)
{
var testData = new ResourceDataReader(typeof(ConfigurationLoaderTest), "Data");
- if (testData == null)
- {
- throw new InvalidOperationException("TestData object has not been created yet");
- }
-
return new StringReader(testData.ReadData(file));
}
diff --git a/src/Trash.Tests/Sonarr/ReleaseProfile/ReleaseProfileParserTest.cs b/src/Trash.Tests/Sonarr/ReleaseProfile/ReleaseProfileParserTest.cs
index d0d09373..b451bbba 100644
--- a/src/Trash.Tests/Sonarr/ReleaseProfile/ReleaseProfileParserTest.cs
+++ b/src/Trash.Tests/Sonarr/ReleaseProfile/ReleaseProfileParserTest.cs
@@ -2,7 +2,6 @@ using System.Collections.Generic;
using System.Linq;
using Common;
using FluentAssertions;
-using NSubstitute;
using NUnit.Framework;
using Serilog;
using Serilog.Sinks.TestCorrelator;
@@ -31,8 +30,10 @@ namespace Trash.Tests.Sonarr.ReleaseProfile
.MinimumLevel.Debug()
.CreateLogger();
- Config = Substitute.For();
- Config.ReleaseProfiles.Add(new ReleaseProfileConfig());
+ Config = new SonarrConfiguration
+ {
+ ReleaseProfiles = new[] {new ReleaseProfileConfig()}
+ };
GuideParser = new ReleaseProfileGuideParser(logger);
}
diff --git a/src/Trash.Tests/Sonarr/ReleaseProfileUpdaterTest.cs b/src/Trash.Tests/Sonarr/ReleaseProfileUpdaterTest.cs
index 64165532..7ecb9563 100644
--- a/src/Trash.Tests/Sonarr/ReleaseProfileUpdaterTest.cs
+++ b/src/Trash.Tests/Sonarr/ReleaseProfileUpdaterTest.cs
@@ -16,7 +16,6 @@ namespace Trash.Tests.Sonarr
public ISonarrCommand Args { get; } = Substitute.For();
public IReleaseProfileGuideParser Parser { get; } = Substitute.For();
public ISonarrApi Api { get; } = Substitute.For();
- public SonarrConfiguration Config { get; } = Substitute.For();
public ILogger Logger { get; } = Substitute.For();
}
@@ -26,7 +25,7 @@ namespace Trash.Tests.Sonarr
var context = new Context();
var logic = new ReleaseProfileUpdater(context.Logger, context.Parser, context.Api);
- logic.Process(context.Args, context.Config);
+ logic.Process(context.Args, new SonarrConfiguration());
context.Parser.DidNotReceive().GetMarkdownData(Arg.Any());
}
@@ -37,12 +36,15 @@ namespace Trash.Tests.Sonarr
var context = new Context();
context.Parser.GetMarkdownData(ReleaseProfileType.Anime).Returns("theMarkdown");
- context.Config.ReleaseProfiles.Add(new ReleaseProfileConfig {Type = ReleaseProfileType.Anime});
+ var config = new SonarrConfiguration
+ {
+ ReleaseProfiles = new[] {new ReleaseProfileConfig {Type = ReleaseProfileType.Anime}}
+ };
var logic = new ReleaseProfileUpdater(context.Logger, context.Parser, context.Api);
- logic.Process(context.Args, context.Config);
+ logic.Process(context.Args, config);
- context.Parser.Received().ParseMarkdown(context.Config.ReleaseProfiles[0], "theMarkdown");
+ context.Parser.Received().ParseMarkdown(config.ReleaseProfiles[0], "theMarkdown");
}
}
}
diff --git a/src/Trash/Cache/CacheObjectNameAttribute.cs b/src/Trash/Cache/CacheObjectNameAttribute.cs
index 2b2a65b6..7095ef26 100644
--- a/src/Trash/Cache/CacheObjectNameAttribute.cs
+++ b/src/Trash/Cache/CacheObjectNameAttribute.cs
@@ -2,7 +2,8 @@
namespace Trash.Cache
{
- public class CacheObjectNameAttribute : Attribute
+ [AttributeUsage(AttributeTargets.Class)]
+ public sealed class CacheObjectNameAttribute : Attribute
{
public CacheObjectNameAttribute(string name)
{
diff --git a/src/Trash/Command/IServiceCommand.cs b/src/Trash/Command/IServiceCommand.cs
index bd118413..16da8af2 100644
--- a/src/Trash/Command/IServiceCommand.cs
+++ b/src/Trash/Command/IServiceCommand.cs
@@ -6,7 +6,7 @@ namespace Trash.Command
{
bool Preview { get; }
bool Debug { get; }
- List? Config { get; }
+ ICollection? Config { get; }
string CacheStoragePath { get; }
}
}
diff --git a/src/Trash/Command/ServiceCommand.cs b/src/Trash/Command/ServiceCommand.cs
index 6be07730..08d7bbc2 100644
--- a/src/Trash/Command/ServiceCommand.cs
+++ b/src/Trash/Command/ServiceCommand.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using CliFx;
@@ -67,7 +67,8 @@ namespace Trash.Command
[CommandOption("config", 'c', Description =
"One or more YAML config files to use. All configs will be used and settings are additive. " +
"If not specified, the script will look for `trash.yml` in the same directory as the executable.")]
- public List Config { get; [UsedImplicitly] set; } = new() {AppPaths.DefaultConfigPath};
+ public ICollection Config { get; [UsedImplicitly] set; } =
+ new List {AppPaths.DefaultConfigPath};
public abstract string CacheStoragePath { get; }
diff --git a/src/Trash/Config/ConfigurationException.cs b/src/Trash/Config/ConfigurationException.cs
index 919a1d72..f0300548 100644
--- a/src/Trash/Config/ConfigurationException.cs
+++ b/src/Trash/Config/ConfigurationException.cs
@@ -1,16 +1,16 @@
-using System;
+using System;
namespace Trash.Config
{
public class ConfigurationException : Exception
{
- public ConfigurationException(string propertyName, Type type)
+ public ConfigurationException(string propertyName, Type deserializableType)
{
PropertyName = propertyName;
- Type = type;
+ DeserializableType = deserializableType;
}
public string PropertyName { get; }
- public Type Type { get; }
+ public Type DeserializableType { get; }
}
}
diff --git a/src/Trash/Extensions/RegexExtensions.cs b/src/Trash/Extensions/RegexExtensions.cs
index 82d8f79d..8cc5c010 100644
--- a/src/Trash/Extensions/RegexExtensions.cs
+++ b/src/Trash/Extensions/RegexExtensions.cs
@@ -1,9 +1,14 @@
-using System.Text.RegularExpressions;
+using System.Diagnostics.CodeAnalysis;
+using System.Text.RegularExpressions;
namespace Trash.Extensions
{
public static class RegexExtensions
{
+ [SuppressMessage("Design", "CA1021:Avoid out parameters",
+ Justification =
+ "The out param has a very specific design purpose. It's to allow regex match expressions " +
+ "to be executed inside an if condition while also providing match output variable.")]
public static bool Match(this Regex re, string strToCheck, out Match match)
{
match = re.Match(strToCheck);
diff --git a/src/Trash/Program.cs b/src/Trash/Program.cs
index c90ee2d0..9e5dec72 100644
--- a/src/Trash/Program.cs
+++ b/src/Trash/Program.cs
@@ -1,4 +1,4 @@
-using System.Threading.Tasks;
+using System.Threading.Tasks;
using Autofac;
using CliFx;
using Trash.Command;
diff --git a/src/Trash/Radarr/Api/IRadarrApi.cs b/src/Trash/Radarr/Api/IRadarrApi.cs
index 8e993563..2e81232c 100644
--- a/src/Trash/Radarr/Api/IRadarrApi.cs
+++ b/src/Trash/Radarr/Api/IRadarrApi.cs
@@ -7,6 +7,6 @@ namespace Trash.Radarr.Api
public interface IRadarrApi
{
Task> GetQualityDefinition();
- Task> UpdateQualityDefinition(List newQuality);
+ Task> UpdateQualityDefinition(IList newQuality);
}
}
diff --git a/src/Trash/Radarr/Api/RadarrApi.cs b/src/Trash/Radarr/Api/RadarrApi.cs
index 8b2a9c94..272aa886 100644
--- a/src/Trash/Radarr/Api/RadarrApi.cs
+++ b/src/Trash/Radarr/Api/RadarrApi.cs
@@ -24,8 +24,8 @@ namespace Trash.Radarr.Api
.GetJsonAsync>();
}
- public async Task> UpdateQualityDefinition(
- List newQuality)
+ public async Task> UpdateQualityDefinition(
+ IList newQuality)
{
return await BaseUrl()
.AppendPathSegment("qualityDefinition/update")
diff --git a/src/Trash/Sonarr/Api/ISonarrApi.cs b/src/Trash/Sonarr/Api/ISonarrApi.cs
index 35127f67..00b84f4e 100644
--- a/src/Trash/Sonarr/Api/ISonarrApi.cs
+++ b/src/Trash/Sonarr/Api/ISonarrApi.cs
@@ -8,12 +8,12 @@ namespace Trash.Sonarr.Api
public interface ISonarrApi
{
Task GetVersion();
- Task> GetTags();
+ Task> GetTags();
Task CreateTag(string tag);
- Task> GetReleaseProfiles();
+ Task> GetReleaseProfiles();
Task UpdateReleaseProfile(SonarrReleaseProfile profileToUpdate);
Task CreateReleaseProfile(SonarrReleaseProfile newProfile);
- Task> GetQualityDefinition();
- Task> UpdateQualityDefinition(List newQuality);
+ Task> GetQualityDefinition();
+ Task> UpdateQualityDefinition(IReadOnlyCollection newQuality);
}
}
diff --git a/src/Trash/Sonarr/Api/Objects/SonarrReleaseProfile.cs b/src/Trash/Sonarr/Api/Objects/SonarrReleaseProfile.cs
index 7b90263a..48a3ecd4 100644
--- a/src/Trash/Sonarr/Api/Objects/SonarrReleaseProfile.cs
+++ b/src/Trash/Sonarr/Api/Objects/SonarrReleaseProfile.cs
@@ -28,9 +28,9 @@ namespace Trash.Sonarr.Api.Objects
public string Name { get; set; } = "";
public string Required { get; set; } = "";
public string Ignored { get; set; } = "";
- public List Preferred { get; set; } = new();
+ public IReadOnlyCollection Preferred { get; set; } = new List();
public bool IncludePreferredWhenRenaming { get; set; }
public int IndexerId { get; set; }
- public List Tags { get; set; } = new();
+ public IReadOnlyCollection Tags { get; set; } = new List();
}
}
diff --git a/src/Trash/Sonarr/Api/SonarrApi.cs b/src/Trash/Sonarr/Api/SonarrApi.cs
index 84d4401d..c24de268 100644
--- a/src/Trash/Sonarr/Api/SonarrApi.cs
+++ b/src/Trash/Sonarr/Api/SonarrApi.cs
@@ -25,7 +25,7 @@ namespace Trash.Sonarr.Api
return new Version(data.version);
}
- public async Task> GetTags()
+ public async Task> GetTags()
{
return await BaseUrl()
.AppendPathSegment("tag")
@@ -40,7 +40,7 @@ namespace Trash.Sonarr.Api
.ReceiveJson();
}
- public async Task> GetReleaseProfiles()
+ public async Task> GetReleaseProfiles()
{
return await BaseUrl()
.AppendPathSegment("releaseprofile")
@@ -62,15 +62,15 @@ namespace Trash.Sonarr.Api
.ReceiveJson();
}
- public async Task> GetQualityDefinition()
+ public async Task> GetQualityDefinition()
{
return await BaseUrl()
.AppendPathSegment("qualitydefinition")
.GetJsonAsync>();
}
- public async Task> UpdateQualityDefinition(
- List newQuality)
+ public async Task> UpdateQualityDefinition(
+ IReadOnlyCollection newQuality)
{
return await BaseUrl()
.AppendPathSegment("qualityDefinition/update")
diff --git a/src/Trash/Sonarr/ReleaseProfile/FilteredProfileData.cs b/src/Trash/Sonarr/ReleaseProfile/FilteredProfileData.cs
index 51e951f6..62090719 100644
--- a/src/Trash/Sonarr/ReleaseProfile/FilteredProfileData.cs
+++ b/src/Trash/Sonarr/ReleaseProfile/FilteredProfileData.cs
@@ -14,15 +14,15 @@ namespace Trash.Sonarr.ReleaseProfile
_config = config;
}
- public List Required => _config.Filter.IncludeOptional
+ public IEnumerable Required => _config.Filter.IncludeOptional
? _profileData.Required.Concat(_profileData.Optional.Required).ToList()
: _profileData.Required;
- public List Ignored => _config.Filter.IncludeOptional
+ public IEnumerable Ignored => _config.Filter.IncludeOptional
? _profileData.Ignored.Concat(_profileData.Optional.Ignored).ToList()
: _profileData.Ignored;
- public Dictionary> Preferred => _config.Filter.IncludeOptional
+ public IDictionary> Preferred => _config.Filter.IncludeOptional
? _profileData.Preferred
.Union(_profileData.Optional.Preferred)
.GroupBy(kvp => kvp.Key)
diff --git a/src/Trash/Sonarr/ReleaseProfile/ParserState.cs b/src/Trash/Sonarr/ReleaseProfile/ParserState.cs
index add7f0a8..06b181b7 100644
--- a/src/Trash/Sonarr/ReleaseProfile/ParserState.cs
+++ b/src/Trash/Sonarr/ReleaseProfile/ParserState.cs
@@ -38,26 +38,23 @@ namespace Trash.Sonarr.ReleaseProfile
// If category is preferred, we also require a score
(CurrentCategory.Value != TermCategory.Preferred || Score != null);
- public List IgnoredTerms
- => TermsAreOptional.Value ? Profile.Optional.Ignored : Profile.Ignored;
+ public ICollection IgnoredTerms
+ => TermsAreOptional.Value ? GetProfile().Optional.Ignored : GetProfile().Ignored;
- public List RequiredTerms
- => TermsAreOptional.Value ? Profile.Optional.Required : Profile.Required;
+ public ICollection RequiredTerms
+ => TermsAreOptional.Value ? GetProfile().Optional.Required : GetProfile().Required;
- public Dictionary> PreferredTerms
- => TermsAreOptional.Value ? Profile.Optional.Preferred : Profile.Preferred;
+ public IDictionary> PreferredTerms
+ => TermsAreOptional.Value ? GetProfile().Optional.Preferred : GetProfile().Preferred;
- public ProfileData Profile
+ public ProfileData GetProfile()
{
- get
+ if (ProfileName == null)
{
- if (ProfileName == null)
- {
- throw new NullReferenceException();
- }
-
- return Results.GetOrCreate(ProfileName);
+ throw new NullReferenceException();
}
+
+ return Results.GetOrCreate(ProfileName);
}
public void ResetParserState()
diff --git a/src/Trash/Sonarr/ReleaseProfile/ProfileData.cs b/src/Trash/Sonarr/ReleaseProfile/ProfileData.cs
index 1e543d25..29b49677 100644
--- a/src/Trash/Sonarr/ReleaseProfile/ProfileData.cs
+++ b/src/Trash/Sonarr/ReleaseProfile/ProfileData.cs
@@ -4,16 +4,16 @@ namespace Trash.Sonarr.ReleaseProfile
{
public class ProfileDataOptional
{
- public List Required { get; init; } = new();
- public List Ignored { get; init; } = new();
- public Dictionary> Preferred { get; init; } = new();
+ public ICollection Required { get; init; } = new List();
+ public ICollection Ignored { get; init; } = new List();
+ public IDictionary> Preferred { get; init; } = new Dictionary>();
}
public class ProfileData
{
- public List Required { get; init; } = new();
- public List Ignored { get; init; } = new();
- public Dictionary> Preferred { get; init; } = new();
+ public ICollection Required { get; init; } = new List();
+ public ICollection Ignored { get; init; } = new List();
+ public IDictionary> Preferred { get; init; } = new Dictionary>();
// We use 'null' here to represent no explicit mention of the "include preferred" string
// found in the markdown. We use this to control whether or not the corresponding profile
diff --git a/src/Trash/Sonarr/ReleaseProfile/ReleaseProfileGuideParser.cs b/src/Trash/Sonarr/ReleaseProfile/ReleaseProfileGuideParser.cs
index a97c0514..f870b24d 100644
--- a/src/Trash/Sonarr/ReleaseProfile/ReleaseProfileGuideParser.cs
+++ b/src/Trash/Sonarr/ReleaseProfile/ReleaseProfileGuideParser.cs
@@ -206,9 +206,9 @@ namespace Trash.Sonarr.ReleaseProfile
// run the IsSkippableLine() check.
if (line.ContainsIgnoreCase("include preferred"))
{
- state.Profile.IncludePreferredWhenRenaming = !line.ContainsIgnoreCase("not");
+ state.GetProfile().IncludePreferredWhenRenaming = !line.ContainsIgnoreCase("not");
Log.Debug(" - 'Include Preferred' found [Value: {IncludePreferredWhenRenaming}] [Line: {Line}]",
- state.Profile.IncludePreferredWhenRenaming, line);
+ state.GetProfile().IncludePreferredWhenRenaming, line);
return;
}
diff --git a/src/Trash/Sonarr/ReleaseProfile/Utils.cs b/src/Trash/Sonarr/ReleaseProfile/Utils.cs
index c3b9d956..e5d16a2e 100644
--- a/src/Trash/Sonarr/ReleaseProfile/Utils.cs
+++ b/src/Trash/Sonarr/ReleaseProfile/Utils.cs
@@ -44,7 +44,7 @@ namespace Trash.Sonarr.ReleaseProfile
Console.WriteLine("");
}
- static void PrintTerms(string title, IReadOnlyCollection terms)
+ static void PrintTerms(string title, ICollection terms)
{
if (terms.Count == 0)
{
diff --git a/src/Trash/Sonarr/SonarrConfiguration.cs b/src/Trash/Sonarr/SonarrConfiguration.cs
index db68f22a..534d06b5 100644
--- a/src/Trash/Sonarr/SonarrConfiguration.cs
+++ b/src/Trash/Sonarr/SonarrConfiguration.cs
@@ -10,7 +10,7 @@ namespace Trash.Sonarr
[UsedImplicitly(ImplicitUseTargetFlags.WithMembers)]
public class SonarrConfiguration : BaseConfiguration
{
- public List ReleaseProfiles { get; set; } = new();
+ public IList ReleaseProfiles { get; set; } = new List();
public SonarrQualityDefinitionType? QualityDefinition { get; init; }
public override string BuildUrl()
@@ -27,7 +27,7 @@ namespace Trash.Sonarr
public ReleaseProfileType Type { get; init; }
public bool StrictNegativeScores { get; init; }
public SonarrProfileFilterConfig Filter { get; init; } = new();
- public List Tags { get; init; } = new();
+ public ICollection Tags { get; init; } = new List();
}
[UsedImplicitly(ImplicitUseTargetFlags.WithMembers)]
diff --git a/src/TrashUpdater.sln b/src/TrashUpdater.sln
index 43fab4ff..7001833a 100644
--- a/src/TrashUpdater.sln
+++ b/src/TrashUpdater.sln
@@ -12,6 +12,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Props", "Props", "{305C2AC5
ProjectSection(SolutionItems) = preProject
Directory.Build.props = Directory.Build.props
Directory.Build.targets = Directory.Build.targets
+ .editorconfig = .editorconfig
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "Common\Common.csproj", "{18CF1FCA-7983-4423-8B7E-4A830108C624}"