using Common.Helpers; using Data; using Infrastructure.Events; using Infrastructure.Interceptors; using Infrastructure.Services; using Infrastructure.Services.Interfaces; using Infrastructure.Verticals.Arr; using Infrastructure.Verticals.ContentBlocker; using Infrastructure.Verticals.DownloadCleaner; using Infrastructure.Verticals.DownloadClient; using Infrastructure.Verticals.DownloadClient.Deluge; using Infrastructure.Verticals.DownloadClient.QBittorrent; using Infrastructure.Verticals.DownloadClient.Transmission; using Infrastructure.Verticals.DownloadRemover; using Infrastructure.Verticals.DownloadRemover.Interfaces; using Infrastructure.Verticals.Files; using Infrastructure.Verticals.ItemStriker; using Infrastructure.Verticals.QueueCleaner; using Infrastructure.Verticals.Security; namespace Executable.DependencyInjection; public static class ServicesDI { public static IServiceCollection AddServices(this IServiceCollection services) => services .AddSingleton() .AddTransient() .AddTransient() .AddTransient() .AddTransient() .AddHostedService() // API services .AddSingleton() // Core services .AddTransient() .AddTransient() .AddTransient() .AddTransient() .AddTransient() .AddTransient() .AddTransient() .AddTransient() .AddTransient() .AddTransient() .AddTransient() .AddTransient() .AddTransient() // Download client services .AddTransient() .AddTransient() .AddTransient() .AddTransient() .AddTransient() .AddTransient() .AddSingleton(); }