From 159861aaebfe0054e20776dcbdc48ed2ec6708ca Mon Sep 17 00:00:00 2001 From: Robert Dailey Date: Sat, 9 Sep 2023 23:07:47 -0500 Subject: [PATCH] refactor: Split Recyclarr.TrashLib project Split into Config and Guide class library projects to help decouple and componentize the TrashLib library, which is growing too big. --- src/Directory.Build.props | 4 -- src/Directory.Packages.props | 4 +- src/Recyclarr.Cli/Cache/CachePersister.cs | 2 +- src/Recyclarr.Cli/Cache/ICachePersister.cs | 2 +- src/Recyclarr.Cli/Cache/IServiceCache.cs | 2 +- src/Recyclarr.Cli/Cache/ServiceCache.cs | 2 +- src/Recyclarr.Cli/CompositionRoot.cs | 12 ++++- .../Commands/ListCustomFormatsCommand.cs | 2 +- .../Console/Commands/ListQualitiesCommand.cs | 2 +- .../Commands/ListReleaseProfilesCommand.cs | 2 +- .../Console/Helpers/CacheStoragePath.cs | 2 +- src/Recyclarr.Cli/GlobalUsings.cs | 1 + .../CustomFormat/Api/CustomFormatService.cs | 2 +- .../CustomFormat/Api/ICustomFormatService.cs | 2 +- .../CustomFormat/CustomFormatAutofacModule.cs | 4 -- .../{Guide => }/CustomFormatDataLister.cs | 3 +- .../CustomFormat/CustomFormatSyncPipeline.cs | 2 +- .../Models/ProcessedConfigData.cs | 2 +- .../CustomFormatApiFetchPhase.cs | 2 +- .../CustomFormatApiPersistencePhase.cs | 2 +- .../PipelinePhases/CustomFormatConfigPhase.cs | 4 +- .../CustomFormatTransactionPhase.cs | 2 +- src/Recyclarr.Cli/Pipelines/ISyncPipeline.cs | 2 +- .../Api/IQualityProfileService.cs | 2 +- .../Api/QualityProfileService.cs | 2 +- .../QualityProfileApiFetchPhase.cs | 2 +- .../QualityProfileApiPersistencePhase.cs | 2 +- .../QualityProfileConfigPhase.cs | 2 +- .../QualityProfileTransactionPhase.cs | 2 +- .../QualityProfile/QualityItemOrganizer.cs | 5 +- .../QualityProfileSyncPipeline.cs | 2 +- .../Api/IQualityDefinitionService.cs | 2 +- .../Api/QualityDefinitionService.cs | 2 +- .../QualitySizeApiFetchPhase.cs | 2 +- .../QualitySizeApiPersistencePhase.cs | 2 +- .../PipelinePhases/QualitySizeGuidePhase.cs | 8 ++-- .../PipelinePhases/QualitySizePreviewPhase.cs | 1 + .../QualitySizeTransactionPhase.cs | 1 + .../QualitySize/QualitySizeAutofacModule.cs | 3 -- .../{Guide => }/QualitySizeDataLister.cs | 7 +-- .../QualitySize/QualitySizeSyncPipeline.cs | 2 +- .../Api/IReleaseProfileApiService.cs | 2 +- ...onarrReleaseProfileCompatibilityHandler.cs | 2 +- .../Api/ReleaseProfileApiService.cs | 2 +- ...onarrReleaseProfileCompatibilityHandler.cs | 2 +- .../Filters/IReleaseProfileFilter.cs | 3 +- .../Filters/IReleaseProfileFilterPipeline.cs | 3 +- .../Filters/IncludeExcludeFilter.cs | 3 +- .../Filters/ReleaseProfileDataFilterer.cs | 3 +- .../Filters/ReleaseProfileFilterPipeline.cs | 3 +- .../Filters/StrictNegativeScoresFilter.cs | 3 +- .../ReleaseProfileApiFetchPhase.cs | 2 +- .../ReleaseProfileApiPersistencePhase.cs | 2 +- .../ReleaseProfileConfigPhase.cs | 4 +- .../ReleaseProfileAutofacModule.cs | 4 -- .../{Guide => }/ReleaseProfileDataLister.cs | 3 +- .../ReleaseProfileSyncPipeline.cs | 2 +- .../Tags/Api/ISonarrTagApiService.cs | 2 +- .../Pipelines/Tags/Api/SonarrTagApiService.cs | 2 +- .../Tags/PipelinePhases/TagApiFetchPhase.cs | 2 +- .../PipelinePhases/TagApiPersistencePhase.cs | 2 +- .../Tags/PipelinePhases/TagConfigPhase.cs | 2 +- .../Pipelines/Tags/TagSyncPipeline.cs | 2 +- .../Config/ConfigListLocalProcessor.cs | 1 - .../Config/ConfigListTemplateProcessor.cs | 2 +- .../Config/TemplateConfigCreator.cs | 2 +- .../Delete/DeleteCustomFormatsProcessor.cs | 1 - .../ErrorHandling/ConsoleExceptionHandler.cs | 1 + .../Processors/IServiceProcessor.cs | 2 +- .../Processors/Sync/SyncPipelineExecutor.cs | 2 +- .../Processors/Sync/SyncProcessor.cs | 1 - src/Recyclarr.Cli/Recyclarr.Cli.csproj | 6 +++ src/Recyclarr.Common/GlobalUsings.cs | 1 + src/Recyclarr.Gui/Program.cs | 1 + .../ConfigAutofacModule.cs | 16 ++----- .../ConfigExtensions.cs | 1 - .../ConfigFilterCriteria.cs | 0 .../ConfigurationRegistry.cs | 3 +- .../EnvironmentVariableNotDefinedException.cs | 0 .../EnvironmentVariablesDeserializer.cs | 0 .../EnvironmentVariablesYamlBehavior.cs | 2 +- .../DuplicateInstancesException.cs | 2 +- .../InvalidInstancesException.cs | 2 +- .../ExceptionTypes/SplitInstancesException.cs | 2 +- src/Recyclarr.TrashLib.Config/GlobalUsings.cs | 2 + .../IConfigurationRegistry.cs | 2 - .../ResetUnmatchedScoresYamlTypeConverter.cs | 0 .../Parsing/ConfigParser.cs | 4 +- .../Parsing/ConfigSaver.cs | 2 +- .../Parsing/ConfigValidationExecutor.cs | 0 .../Parsing/ConfigYamlDataObjects.cs | 1 - .../ConfigYamlDataObjectsValidation.cs | 0 .../Parsing/ConfigYamlMapperProfile.cs | 1 - .../Parsing/ConfigurationFinder.cs | 0 .../Parsing/ConfigurationLoader.cs | 1 - .../ConfigContextualMessages.cs} | 2 +- .../ConfigFeatureRemovalBehavior.cs | 2 +- .../ErrorHandling/ConfigurationException.cs | 0 .../ErrorHandling/FeatureRemovalChecker.cs | 0 .../ErrorHandling/FeatureRemovalException.cs | 0 .../InvalidConfigurationFilesException.cs | 0 .../NoConfigurationFilesException.cs | 0 .../Parsing/IConfigurationFinder.cs | 0 .../Parsing/IConfigurationLoader.cs | 1 - .../ConfigMerging/ConfigIncludeProcessor.cs | 0 .../ConfigMerging/IIncludeProcessor.cs | 0 .../ConfigMerging/IYamlIncludeResolver.cs | 0 .../PolymorphicIncludeYamlBehavior.cs | 2 +- .../ConfigMerging/RadarrConfigMerger.cs | 0 .../ConfigMerging/ServiceConfigMerger.cs | 0 .../ConfigMerging/SonarrConfigMerger.cs | 0 .../ConfigMerging/TemplateIncludeProcessor.cs | 2 +- .../ConfigMerging/YamlIncludeDataObjects.cs | 0 .../ConfigMerging/YamlIncludeException.cs | 0 .../ConfigMerging/YamlIncludeResolver.cs | 0 .../PostProcessing/IConfigPostProcessor.cs | 0 .../ImplicitUrlAndKeyPostProcessor.cs | 0 .../PostProcessing/IncludePostProcessor.cs | 0 .../Parsing/YamlValidatorRuleSets.cs | 0 .../Recyclarr.TrashLib.Config.csproj | 16 +++++++ .../Secrets/ISecretsProvider.cs | 0 .../Secrets/SecretNotFoundException.cs | 0 .../Secrets/SecretsDeserializer.cs | 0 .../Secrets/SecretsProvider.cs | 0 .../Secrets/SecretsYamlBehavior.cs | 2 +- .../ConfigTemplateGuideService.cs | 22 ++++++++- .../CustomFormat}/CustomFormatCategoryItem.cs | 2 +- .../CustomFormatCategoryParser.cs | 2 +- .../CustomFormat}/CustomFormatGuideService.cs | 2 +- .../CustomFormat}/CustomFormatLoader.cs | 2 +- .../CustomFormat}/CustomFormatPaths.cs | 2 +- .../ICustomFormatCategoryParser.cs | 2 +- .../ICustomFormatGuideService.cs | 2 +- .../CustomFormat}/ICustomFormatLoader.cs | 2 +- src/Recyclarr.TrashLib.Guide/GlobalUsings.cs | 2 + .../GuideAutofacModule.cs | 29 ++++++++++++ .../IConfigTemplateGuideService.cs | 2 +- .../QualitySize/IQualitySizeGuideService.cs} | 4 +- .../QualitySize}/QualityItem.cs | 2 +- .../QualitySize/QualitySizeData.cs | 2 +- .../QualitySize}/QualitySizeGuideParser.cs | 2 +- .../QualitySize/QualitySizeGuideService.cs} | 6 +-- .../QualitySize/QualitySizeItem.cs | 4 +- .../QualitySize}/QualitySizePaths.cs | 2 +- .../Recyclarr.TrashLib.Guide.csproj | 8 ++++ .../IReleaseProfileGuideService.cs | 2 +- .../ReleaseProfile/ReleaseProfileData.cs | 2 +- .../ReleaseProfileDataValidationFilterer.cs | 2 +- .../ReleaseProfileDataValidator.cs | 2 +- .../ReleaseProfileGuideParser.cs | 3 +- .../ReleaseProfileGuideService.cs | 2 +- .../ReleaseProfile/TermDataConverter.cs | 2 +- .../ApiServices/System/IServiceInformation.cs | 2 +- .../ApiServices/System/ISystemApiService.cs | 2 +- .../ApiServices/System/ServiceInformation.cs | 2 +- .../ApiServices/System/SystemApiService.cs | 2 +- .../Radarr/IRadarrCapabilityFetcher.cs | 2 +- .../Radarr/RadarrCapabilityEnforcer.cs | 2 +- .../ServiceAgnosticCapabilityEnforcer.cs | 2 +- .../Compatibility/ServiceCapabilityFetcher.cs | 2 +- .../Sonarr/ISonarrCapabilityFetcher.cs | 2 +- .../Sonarr/SonarrCapabilityEnforcer.cs | 2 +- .../{Services => }/IServiceConfiguration.cs | 2 +- .../{Services => }/RadarrConfiguration.cs | 2 +- .../{Services => }/ServiceConfiguration.cs | 2 +- .../{Services => }/SonarrConfiguration.cs | 2 +- src/Recyclarr.TrashLib/GlobalUsings.cs | 1 + .../Http/IServiceRequestBuilder.cs | 2 +- .../Http/ServiceRequestBuilder.cs | 2 +- .../Interfaces/ICacheStoragePath.cs | 2 +- .../Recyclarr.TrashLib.csproj | 1 + .../Repo/RepoAutofacModule.cs | 2 +- .../Repo/RepoMetadataBuilder.cs | 28 ----------- .../Repo/TrashRepoJsonParser.cs | 29 ------------ .../Repo/TrashRepoMetadataBuilder.cs | 44 ++++++++++++++++++ .../Settings/SettingsContextualMessages.cs | 21 +++++++++ .../Settings/SettingsProvider.cs | 5 +- .../TrashLibAutofacModule.cs | 18 +------- src/Recyclarr.Yaml/GlobalUsings.cs | 1 + .../Yaml => Recyclarr.Yaml}/IYamlBehavior.cs | 2 +- .../IYamlSerializerFactory.cs | 2 +- src/Recyclarr.Yaml/Recyclarr.Yaml.csproj | 7 +++ .../UnknownYamlException.cs | 2 +- src/Recyclarr.Yaml/YamlAutofacModule.cs | 14 ++++++ .../YamlDotNet/CannotBeEmptyAttribute.cs | 2 +- .../YamlDotNet/ForceEmptySequences.cs | 2 +- .../ReadOnlyCollectionNodeTypeResolver.cs | 2 +- .../YamlDotNet}/SyntaxErrorHelper.cs | 2 +- .../YamlDotNet/ValidatingDeserializer.cs | 2 +- .../YamlDotNet/YamlDotNetExtensions.cs | 2 +- .../YamlNullableEnumTypeConverter.cs | 2 +- .../YamlSerializerFactory.cs | 9 ++-- src/Recyclarr.sln | 46 +++++++++++++++++++ src/tests/Directory.Build.props | 7 +-- src/tests/Recyclarr.Cli.TestLibrary/NewQp.cs | 2 +- .../Cache/CachePersisterTest.cs | 2 +- .../Cache/ServiceCacheTest.cs | 5 +- .../Console/Helpers/CacheStoragePathTest.cs | 2 +- .../Api/CustomFormatServiceTest.cs | 2 +- .../{Guide => }/CustomFormatDataListerTest.cs | 5 +- .../CustomFormatConfigPhaseTest.cs | 4 +- .../QualityProfileConfigPhaseTest.cs | 2 +- .../QualityProfileTransactionPhaseTest.cs | 2 +- .../QualityItemOrganizerTest.cs | 2 +- .../UpdatedQualityProfileTest.cs | 2 +- .../UpdatedQualityProfileValidatorTest.cs | 2 +- .../QualitySizeGuidePhaseTest.cs | 13 +++--- .../QualitySizeTransactionPhaseTest.cs | 2 +- ...rReleaseProfileCompatibilityHandlerTest.cs | 2 +- .../Filters/ReleaseProfileDataFiltererTest.cs | 4 +- .../Filters/StrictNegativeScoresFilterTest.cs | 4 +- .../ReleaseProfileDataListerTest.cs | 4 +- .../TagApiPersistencePhaseTest.cs | 2 +- .../Tags/PipelinePhases/TagConfigPhaseTest.cs | 2 +- .../Config/TemplateConfigCreatorTest.cs | 2 +- .../Processors/ConfigTemplateListerTest.cs | 2 +- .../ConfigIntegrationFixture.cs | 20 ++++++++ ...cyclarr.TrashLib.Config.TestLibrary.csproj | 6 +++ .../ConfigExtensionsTest.cs | 5 +- .../ConfigurationRegistryTest.cs | 10 ++-- ...ironmentVariableNotDefinedExceptionTest.cs | 2 +- .../GlobalUsings.cs | 3 ++ .../Parsing/ConfigSaverTest.cs | 6 +-- .../Parsing/ConfigValidationExecutorTest.cs | 2 +- .../ConfigYamlDataObjectsValidationTest.cs | 2 +- .../Parsing/ConfigYamlMapperProfileTest.cs | 3 +- .../Parsing/ConfigurationFinderTest.cs | 2 +- .../Parsing/ConfigurationLoaderEnvVarTest.cs | 6 +-- .../Parsing/ConfigurationLoaderSecretsTest.cs | 7 ++- .../Parsing/ConfigurationLoaderTest.cs | 11 +++-- .../Data/Load_UsingStream_CorrectParsing.yml | 0 .../ConfigIncludeProcessorTest.cs | 2 +- .../ConfigMerging/ServiceConfigMergerTest.cs | 3 +- .../ConfigMerging/SonarrConfigMergerTest.cs | 2 +- .../TemplateIncludeProcessorTest.cs | 5 +- .../ConfigMerging/YamlIncludeResolverTest.cs | 3 +- .../ImplicitUrlAndKeyPostProcessorTest.cs | 2 +- .../IncludePostProcessorIntegrationTest.cs | 6 +-- .../Parsing/SonarrConfigYamlValidatorTest.cs | 3 +- .../Recyclarr.TrashLib.Config.Tests.csproj | 6 +++ .../Secrets/SecretNotFoundExceptionTest.cs | 2 +- .../ConfigTemplateGuideServiceTest.cs | 9 ++-- .../Services/Data/templates.json | 0 .../Settings/SettingsPersisterTest.cs | 4 +- .../YamlConfigValidatorTest.cs | 7 ++- .../GuideIntegrationFixture.cs | 18 ++++++++ ...ecyclarr.TrashLib.Guide.TestLibrary.csproj | 6 +++ .../CustomFormatCategoryParserTest.cs | 5 +- .../CustomFormatLoaderIntegrationTest.cs | 8 ++-- .../Data/invalid_quality_size.json | 0 .../QualitySize}/Data/quality_size.json | 0 .../QualitySize}/QualityItemTest.cs | 4 +- .../QualitySizeGuideParserTest.cs | 9 ++-- .../QualitySizeGuideServiceTest.cs} | 10 ++-- .../QualitySize/QualitySizeItemTest.cs | 4 +- .../Recyclarr.TrashLib.Guide.Tests.csproj | 7 +++ ...eleaseProfileDataValidationFiltererTest.cs | 6 +-- .../ReleaseProfileDataValidatorTest.cs | 4 +- .../ReleaseProfileGuideServiceTest.cs | 6 +-- .../NewConfig.cs | 2 +- .../TrashLibIntegrationFixture.cs | 4 -- .../Sonarr/SonarrCapabilityEnforcerTest.cs | 2 +- 262 files changed, 576 insertions(+), 386 deletions(-) rename src/Recyclarr.Cli/Pipelines/CustomFormat/{Guide => }/CustomFormatDataLister.cs (96%) rename src/Recyclarr.Cli/Pipelines/QualitySize/{Guide => }/QualitySizeDataLister.cs (80%) rename src/Recyclarr.Cli/Pipelines/ReleaseProfile/{Guide => }/ReleaseProfileDataLister.cs (96%) create mode 100644 src/Recyclarr.Common/GlobalUsings.cs rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/ConfigAutofacModule.cs (77%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/ConfigExtensions.cs (98%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/ConfigFilterCriteria.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/ConfigurationRegistry.cs (96%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/EnvironmentVariables/EnvironmentVariableNotDefinedException.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/EnvironmentVariables/EnvironmentVariablesDeserializer.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/EnvironmentVariables/EnvironmentVariablesYamlBehavior.cs (94%) rename src/{Recyclarr.TrashLib => Recyclarr.TrashLib.Config}/ExceptionTypes/DuplicateInstancesException.cs (83%) rename src/{Recyclarr.TrashLib => Recyclarr.TrashLib.Config}/ExceptionTypes/InvalidInstancesException.cs (82%) rename src/{Recyclarr.TrashLib => Recyclarr.TrashLib.Config}/ExceptionTypes/SplitInstancesException.cs (82%) create mode 100644 src/Recyclarr.TrashLib.Config/GlobalUsings.cs rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/IConfigurationRegistry.cs (81%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/BackwardCompatibility/ResetUnmatchedScoresYamlTypeConverter.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/ConfigParser.cs (93%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/ConfigSaver.cs (94%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/ConfigValidationExecutor.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/ConfigYamlDataObjects.cs (99%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/ConfigYamlDataObjectsValidation.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/ConfigYamlMapperProfile.cs (97%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/ConfigurationFinder.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/ConfigurationLoader.cs (98%) rename src/{Recyclarr.TrashLib/Config/Parsing/ErrorHandling/ContextualMessages.cs => Recyclarr.TrashLib.Config/Parsing/ErrorHandling/ConfigContextualMessages.cs} (96%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/ErrorHandling/ConfigFeatureRemovalBehavior.cs (88%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/ErrorHandling/ConfigurationException.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/ErrorHandling/FeatureRemovalChecker.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/ErrorHandling/FeatureRemovalException.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/ErrorHandling/InvalidConfigurationFilesException.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/ErrorHandling/NoConfigurationFilesException.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/IConfigurationFinder.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/IConfigurationLoader.cs (85%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/PostProcessing/ConfigMerging/ConfigIncludeProcessor.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/PostProcessing/ConfigMerging/IIncludeProcessor.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/PostProcessing/ConfigMerging/IYamlIncludeResolver.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/PostProcessing/ConfigMerging/PolymorphicIncludeYamlBehavior.cs (94%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/PostProcessing/ConfigMerging/RadarrConfigMerger.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/PostProcessing/ConfigMerging/ServiceConfigMerger.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/PostProcessing/ConfigMerging/SonarrConfigMerger.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/PostProcessing/ConfigMerging/TemplateIncludeProcessor.cs (96%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/PostProcessing/ConfigMerging/YamlIncludeDataObjects.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/PostProcessing/ConfigMerging/YamlIncludeException.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/PostProcessing/ConfigMerging/YamlIncludeResolver.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/PostProcessing/IConfigPostProcessor.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/PostProcessing/ImplicitUrlAndKeyPostProcessor.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/PostProcessing/IncludePostProcessor.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Parsing/YamlValidatorRuleSets.cs (100%) create mode 100644 src/Recyclarr.TrashLib.Config/Recyclarr.TrashLib.Config.csproj rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Secrets/ISecretsProvider.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Secrets/SecretNotFoundException.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Secrets/SecretsDeserializer.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Secrets/SecretsProvider.cs (100%) rename src/{Recyclarr.TrashLib/Config => Recyclarr.TrashLib.Config}/Secrets/SecretsYamlBehavior.cs (93%) rename src/{Recyclarr.TrashLib/Config/Services => Recyclarr.TrashLib.Guide}/ConfigTemplateGuideService.cs (78%) rename src/{Recyclarr.Cli/Pipelines/CustomFormat/Guide => Recyclarr.TrashLib.Guide/CustomFormat}/CustomFormatCategoryItem.cs (63%) rename src/{Recyclarr.Cli/Pipelines/CustomFormat/Guide => Recyclarr.TrashLib.Guide/CustomFormat}/CustomFormatCategoryParser.cs (98%) rename src/{Recyclarr.Cli/Pipelines/CustomFormat/Guide => Recyclarr.TrashLib.Guide/CustomFormat}/CustomFormatGuideService.cs (97%) rename src/{Recyclarr.Cli/Pipelines/CustomFormat/Guide => Recyclarr.TrashLib.Guide/CustomFormat}/CustomFormatLoader.cs (95%) rename src/{Recyclarr.Cli/Pipelines/CustomFormat/Guide => Recyclarr.TrashLib.Guide/CustomFormat}/CustomFormatPaths.cs (76%) rename src/{Recyclarr.Cli/Pipelines/CustomFormat/Guide => Recyclarr.TrashLib.Guide/CustomFormat}/ICustomFormatCategoryParser.cs (76%) rename src/{Recyclarr.Cli/Pipelines/CustomFormat/Guide => Recyclarr.TrashLib.Guide/CustomFormat}/ICustomFormatGuideService.cs (78%) rename src/{Recyclarr.Cli/Pipelines/CustomFormat/Guide => Recyclarr.TrashLib.Guide/CustomFormat}/ICustomFormatLoader.cs (82%) create mode 100644 src/Recyclarr.TrashLib.Guide/GlobalUsings.cs create mode 100644 src/Recyclarr.TrashLib.Guide/GuideAutofacModule.cs rename src/{Recyclarr.TrashLib/Config/Services => Recyclarr.TrashLib.Guide}/IConfigTemplateGuideService.cs (77%) rename src/{Recyclarr.Cli/Pipelines/QualitySize/Guide/IQualityGuideService.cs => Recyclarr.TrashLib.Guide/QualitySize/IQualitySizeGuideService.cs} (57%) rename src/{Recyclarr.Cli/Pipelines/QualitySize/Guide => Recyclarr.TrashLib.Guide/QualitySize}/QualityItem.cs (95%) rename src/{Recyclarr.Cli/Pipelines => Recyclarr.TrashLib.Guide}/QualitySize/QualitySizeData.cs (79%) rename src/{Recyclarr.Cli/Pipelines/QualitySize/Guide => Recyclarr.TrashLib.Guide/QualitySize}/QualitySizeGuideParser.cs (96%) rename src/{Recyclarr.Cli/Pipelines/QualitySize/Guide/QualityGuideService.cs => Recyclarr.TrashLib.Guide/QualitySize/QualitySizeGuideService.cs} (90%) rename src/{Recyclarr.Cli/Pipelines => Recyclarr.TrashLib.Guide}/QualitySize/QualitySizeItem.cs (90%) rename src/{Recyclarr.Cli/Pipelines/QualitySize/Guide => Recyclarr.TrashLib.Guide/QualitySize}/QualitySizePaths.cs (71%) create mode 100644 src/Recyclarr.TrashLib.Guide/Recyclarr.TrashLib.Guide.csproj rename src/{Recyclarr.Cli/Pipelines/ReleaseProfile/Guide => Recyclarr.TrashLib.Guide/ReleaseProfile}/IReleaseProfileGuideService.cs (66%) rename src/{Recyclarr.Cli/Pipelines => Recyclarr.TrashLib.Guide}/ReleaseProfile/ReleaseProfileData.cs (97%) rename src/{Recyclarr.Cli/Pipelines/ReleaseProfile/Filters => Recyclarr.TrashLib.Guide/ReleaseProfile}/ReleaseProfileDataValidationFilterer.cs (96%) rename src/{Recyclarr.Cli/Pipelines => Recyclarr.TrashLib.Guide}/ReleaseProfile/ReleaseProfileDataValidator.cs (94%) rename src/{Recyclarr.Cli/Pipelines/ReleaseProfile/Guide => Recyclarr.TrashLib.Guide/ReleaseProfile}/ReleaseProfileGuideParser.cs (93%) rename src/{Recyclarr.Cli/Pipelines/ReleaseProfile/Guide => Recyclarr.TrashLib.Guide/ReleaseProfile}/ReleaseProfileGuideService.cs (92%) rename src/{Recyclarr.Cli/Pipelines => Recyclarr.TrashLib.Guide}/ReleaseProfile/TermDataConverter.cs (94%) rename src/Recyclarr.TrashLib/Config/{Services => }/IServiceConfiguration.cs (90%) rename src/Recyclarr.TrashLib/Config/{Services => }/RadarrConfiguration.cs (75%) rename src/Recyclarr.TrashLib/Config/{Services => }/ServiceConfiguration.cs (98%) rename src/Recyclarr.TrashLib/Config/{Services => }/SonarrConfiguration.cs (95%) delete mode 100644 src/Recyclarr.TrashLib/Repo/RepoMetadataBuilder.cs delete mode 100644 src/Recyclarr.TrashLib/Repo/TrashRepoJsonParser.cs create mode 100644 src/Recyclarr.TrashLib/Repo/TrashRepoMetadataBuilder.cs create mode 100644 src/Recyclarr.TrashLib/Settings/SettingsContextualMessages.cs create mode 100644 src/Recyclarr.Yaml/GlobalUsings.cs rename src/{Recyclarr.TrashLib/Config/Yaml => Recyclarr.Yaml}/IYamlBehavior.cs (73%) rename src/{Recyclarr.TrashLib/Config/Yaml => Recyclarr.Yaml}/IYamlSerializerFactory.cs (78%) create mode 100644 src/Recyclarr.Yaml/Recyclarr.Yaml.csproj rename src/{Recyclarr.TrashLib/Config/Yaml => Recyclarr.Yaml}/UnknownYamlException.cs (75%) create mode 100644 src/Recyclarr.Yaml/YamlAutofacModule.cs rename src/{Recyclarr.Common => Recyclarr.Yaml}/YamlDotNet/CannotBeEmptyAttribute.cs (91%) rename src/{Recyclarr.Common => Recyclarr.Yaml}/YamlDotNet/ForceEmptySequences.cs (97%) rename src/{Recyclarr.Common => Recyclarr.Yaml}/YamlDotNet/ReadOnlyCollectionNodeTypeResolver.cs (96%) rename src/{Recyclarr.TrashLib/Config/Parsing/ErrorHandling => Recyclarr.Yaml/YamlDotNet}/SyntaxErrorHelper.cs (95%) rename src/{Recyclarr.Common => Recyclarr.Yaml}/YamlDotNet/ValidatingDeserializer.cs (96%) rename src/{Recyclarr.Common => Recyclarr.Yaml}/YamlDotNet/YamlDotNetExtensions.cs (95%) rename src/{Recyclarr.Common => Recyclarr.Yaml}/YamlDotNet/YamlNullableEnumTypeConverter.cs (98%) rename src/{Recyclarr.TrashLib/Config/Yaml => Recyclarr.Yaml}/YamlSerializerFactory.cs (89%) rename src/tests/Recyclarr.Cli.Tests/Pipelines/CustomFormat/{Guide => }/CustomFormatDataListerTest.cs (86%) rename src/tests/Recyclarr.Cli.Tests/Pipelines/ReleaseProfile/{Guide => }/ReleaseProfileDataListerTest.cs (95%) create mode 100644 src/tests/Recyclarr.TrashLib.Config.TestLibrary/ConfigIntegrationFixture.cs create mode 100644 src/tests/Recyclarr.TrashLib.Config.TestLibrary/Recyclarr.TrashLib.Config.TestLibrary.csproj rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/ConfigExtensionsTest.cs (97%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/ConfigurationRegistryTest.cs (93%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/EnvironmentVariables/EnvironmentVariableNotDefinedExceptionTest.cs (86%) create mode 100644 src/tests/Recyclarr.TrashLib.Config.Tests/GlobalUsings.cs rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Parsing/ConfigSaverTest.cs (92%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Parsing/ConfigValidationExecutorTest.cs (96%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Parsing/ConfigYamlDataObjectsValidationTest.cs (99%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Parsing/ConfigYamlMapperProfileTest.cs (93%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Parsing/ConfigurationFinderTest.cs (98%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Parsing/ConfigurationLoaderEnvVarTest.cs (96%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Parsing/ConfigurationLoaderSecretsTest.cs (95%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Parsing/ConfigurationLoaderTest.cs (93%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Parsing/Data/Load_UsingStream_CorrectParsing.yml (100%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Parsing/PostProcessing/ConfigMerging/ConfigIncludeProcessorTest.cs (97%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Parsing/PostProcessing/ConfigMerging/ServiceConfigMergerTest.cs (99%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Parsing/PostProcessing/ConfigMerging/SonarrConfigMergerTest.cs (98%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Parsing/PostProcessing/ConfigMerging/TemplateIncludeProcessorTest.cs (95%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Parsing/PostProcessing/ConfigMerging/YamlIncludeResolverTest.cs (95%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Parsing/PostProcessing/ImplicitUrlAndKeyPostProcessorTest.cs (99%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Parsing/PostProcessing/IncludePostProcessorIntegrationTest.cs (96%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Parsing/SonarrConfigYamlValidatorTest.cs (96%) create mode 100644 src/tests/Recyclarr.TrashLib.Config.Tests/Recyclarr.TrashLib.Config.Tests.csproj rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Secrets/SecretNotFoundExceptionTest.cs (86%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Services/ConfigTemplateGuideServiceTest.cs (87%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Services/Data/templates.json (100%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/Settings/SettingsPersisterTest.cs (91%) rename src/tests/{Recyclarr.TrashLib.Tests/Config => Recyclarr.TrashLib.Config.Tests}/YamlConfigValidatorTest.cs (97%) create mode 100644 src/tests/Recyclarr.TrashLib.Guide.TestLibrary/GuideIntegrationFixture.cs create mode 100644 src/tests/Recyclarr.TrashLib.Guide.TestLibrary/Recyclarr.TrashLib.Guide.TestLibrary.csproj rename src/tests/{Recyclarr.Cli.Tests/Pipelines/CustomFormat/Guide => Recyclarr.TrashLib.Guide.Tests/CustomFormat}/CustomFormatCategoryParserTest.cs (97%) rename src/tests/{Recyclarr.Cli.Tests/Pipelines/CustomFormat/Guide => Recyclarr.TrashLib.Guide.Tests/CustomFormat}/CustomFormatLoaderIntegrationTest.cs (80%) rename src/tests/{Recyclarr.Cli.Tests/Pipelines/QualitySize/Guide => Recyclarr.TrashLib.Guide.Tests/QualitySize}/Data/invalid_quality_size.json (100%) rename src/tests/{Recyclarr.Cli.Tests/Pipelines/QualitySize/Guide => Recyclarr.TrashLib.Guide.Tests/QualitySize}/Data/quality_size.json (100%) rename src/tests/{Recyclarr.Cli.Tests/Pipelines/QualitySize/Guide => Recyclarr.TrashLib.Guide.Tests/QualitySize}/QualityItemTest.cs (96%) rename src/tests/{Recyclarr.Cli.Tests/Pipelines/QualitySize/Guide => Recyclarr.TrashLib.Guide.Tests/QualitySize}/QualitySizeGuideParserTest.cs (83%) rename src/tests/{Recyclarr.Cli.Tests/Pipelines/QualitySize/Guide/QualityGuideServiceTest.cs => Recyclarr.TrashLib.Guide.Tests/QualitySize/QualitySizeGuideServiceTest.cs} (82%) rename src/tests/{Recyclarr.Cli.Tests/Pipelines => Recyclarr.TrashLib.Guide.Tests}/QualitySize/QualitySizeItemTest.cs (97%) create mode 100644 src/tests/Recyclarr.TrashLib.Guide.Tests/Recyclarr.TrashLib.Guide.Tests.csproj rename src/tests/{Recyclarr.Cli.Tests/Pipelines/ReleaseProfile/Filters => Recyclarr.TrashLib.Guide.Tests/ReleaseProfile}/ReleaseProfileDataValidationFiltererTest.cs (93%) rename src/tests/{Recyclarr.Cli.Tests/Pipelines => Recyclarr.TrashLib.Guide.Tests}/ReleaseProfile/ReleaseProfileDataValidatorTest.cs (96%) rename src/tests/{Recyclarr.Cli.Tests/Pipelines/ReleaseProfile/Guide => Recyclarr.TrashLib.Guide.Tests/ReleaseProfile}/ReleaseProfileGuideServiceTest.cs (94%) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 49dda01f..8d10c9f9 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -11,10 +11,6 @@ true - - - -