using LANCommander.SDK; using LANCommander.SDK.Interceptors; using LANCommander.SDK.Models; using LANCommander.SDK.PowerShell; using LANCommander.SDK.Services; using LANCommander.Server.Services.Abstractions; using LANCommander.Server.Services.Factories; using LANCommander.Server.Services.Interceptors; using LANCommander.Server.Services.MediaGrabbers; using LANCommander.Server.Services.PowerShell; using LANCommander.Server.Services.ServerEngines; using Microsoft.Extensions.DependencyInjection; namespace LANCommander.Server.Services.Extensions; public static class IServiceCollectionExtensions { public static IServiceCollection AddLANCommanderServer(this IServiceCollection services) { services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddTransient(); // Register server engines services.AddSingleton(); services.AddSingleton(); services.AddSingleton(provider => provider.GetService()); services.AddSingleton(); services.AddSingleton(sp => sp.GetRequiredService()); services.AddSingleton(); services.AddSingleton(); services.AddAutoMapper(cfg => { }, typeof(MappingProfile)); services.AddFusionCache(); return services; } }