using LANCommander.SDK; using LANCommander.Server.Services.Abstractions; using LANCommander.Server.Services.Factories; using LANCommander.Server.Services.Importers; using LANCommander.Server.Services.MediaGrabbers; using LANCommander.Server.Services.Models; 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, Settings settings) { services.AddSingleton(new Client("", "")); 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(); services.AddScoped(typeof(ImportService<>)); // Register importers services.AddScoped, GameImporter>(); services.AddScoped, ServerImporter>(); services.AddScoped, RedistributableImporter>(); // Register server engines services.AddSingleton(); services.AddSingleton(); services.AddSingleton(provider => provider.GetService()); services.AddSingleton(); services.AddAutoMapper(typeof(MappingProfile)); services.AddFusionCache(); return services; } }