using LANCommander.Launcher.Data; using LANCommander.Launcher.Services.Import; using LANCommander.Launcher.Services.Import.Factories; using LANCommander.Launcher.Services.Import.Importers; using LANCommander.Launcher.Services.PowerShell; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using LANCommander.SDK.PowerShell; namespace LANCommander.Launcher.Services.Extensions { public class LANCommanderOptions { public ILogger? Logger { get; set; } public string? ServerAddress { get; set; } } public static class ServiceCollectionExtensions { public static IServiceCollection AddLANCommanderLauncher(this IServiceCollection services, Action? configure = null) { services.AddDbContext(options => { options.EnableSensitiveDataLogging(); }); #region Register Client var options = new LANCommanderOptions(); configure?.Invoke(options); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); #endregion services.AddSingleton(); services.AddSingleton(); services.AddSingleton(sp => sp.GetRequiredService()); services.AddSingleton(); 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(); #region Import services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); #endregion return services; } } }