using LANCommander.SDK.Abstractions; using LANCommander.SDK.Factories; using LANCommander.SDK.Models; using LANCommander.SDK.PowerShell; using LANCommander.SDK.Providers; using LANCommander.SDK.Rpc.Client; using LANCommander.SDK.Services; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using RpcSubscriber = LANCommander.SDK.Rpc.Clients.RpcSubscriber; namespace LANCommander.SDK.Extensions; public static class IServiceCollectionExtensions { public static IServiceCollection AddLANCommanderClient(this IServiceCollection services) where TSettings : Settings, new() { services.AddSingleton>(); services.AddSingleton(sp => sp.GetRequiredService>()); services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.TryAddSingleton(); return services; } }