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.
56 lines
1.7 KiB
56 lines
1.7 KiB
using Autofac;
|
|
using Autofac.Extras.Ordering;
|
|
using Recyclarr.Common;
|
|
using Recyclarr.Common.FluentValidation;
|
|
using Recyclarr.Json;
|
|
using Recyclarr.Platform;
|
|
using Recyclarr.Repo;
|
|
using Recyclarr.ServarrApi;
|
|
using Recyclarr.Settings;
|
|
using Recyclarr.TrashLib.Compatibility;
|
|
using Recyclarr.VersionControl;
|
|
|
|
namespace Recyclarr.TrashLib;
|
|
|
|
public class TrashLibAutofacModule : Module
|
|
{
|
|
protected override void Load(ContainerBuilder builder)
|
|
{
|
|
base.Load(builder);
|
|
|
|
RegisterAppPaths(builder);
|
|
CommonRegistrations(builder);
|
|
|
|
// Needed for Autofac.Extras.Ordering
|
|
builder.RegisterSource<OrderedRegistrationSource>();
|
|
|
|
builder.RegisterModule<VersionControlAutofacModule>();
|
|
builder.RegisterModule<RepoAutofacModule>();
|
|
builder.RegisterModule<CompatibilityAutofacModule>();
|
|
builder.RegisterModule<ApiServicesAutofacModule>();
|
|
builder.RegisterModule<JsonAutofacModule>();
|
|
|
|
builder.RegisterType<SettingsProvider>().As<ISettingsProvider>().SingleInstance();
|
|
}
|
|
|
|
private static void CommonRegistrations(ContainerBuilder builder)
|
|
{
|
|
builder.RegisterType<DefaultEnvironment>().As<IEnvironment>();
|
|
builder.RegisterType<RuntimeValidationService>().As<IRuntimeValidationService>();
|
|
}
|
|
|
|
private static void RegisterAppPaths(ContainerBuilder builder)
|
|
{
|
|
builder.RegisterType<DefaultAppDataSetup>();
|
|
|
|
builder.Register(c =>
|
|
{
|
|
var appData = c.Resolve<AppDataPathProvider>();
|
|
var dataSetup = c.Resolve<DefaultAppDataSetup>();
|
|
return dataSetup.CreateAppPaths(appData.AppDataPath);
|
|
})
|
|
.As<IAppPaths>()
|
|
.SingleInstance();
|
|
}
|
|
}
|