using Autofac; using AutoMapper.Contrib.Autofac.DependencyInjection; using FluentValidation; using Recyclarr.Config.Parsing; using Recyclarr.Config.Parsing.PostProcessing; using Recyclarr.Config.Parsing.PostProcessing.ConfigMerging; using Recyclarr.Config.Secrets; using Recyclarr.Yaml; namespace Recyclarr.Config; public class ConfigAutofacModule : Module { protected override void Load(ContainerBuilder builder) { builder.RegisterAutoMapper(ThisAssembly); builder.RegisterAssemblyTypes(ThisAssembly) .AssignableTo() .As(); builder.RegisterType().As().SingleInstance(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType(); builder.RegisterType(); builder.RegisterType(); // Config Post Processors builder.RegisterType().As(); builder.RegisterType().As(); RegisterValidators(builder); } private static void RegisterValidators(ContainerBuilder builder) { builder.RegisterType().As(); // These validators are required by IncludePostProcessor builder.RegisterType().As(); builder.RegisterType().As(); } }