using FileTime.App.Core.Configuration; using FileTime.App.Core.Services; using FileTime.App.Core.ViewModels; using FileTime.ConsoleUI.App.Configuration; using FileTime.ConsoleUI.App.KeyInputHandling; using FileTime.ConsoleUI.App.Services; using FileTime.Core.Interactions; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using TerminalUI; using TerminalUI.ConsoleDrivers; namespace FileTime.ConsoleUI.App; public static class Startup { public static IServiceCollection AddConsoleServices(this IServiceCollection services, IConfigurationRoot configuration) { services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddSingleton(sp => sp.GetRequiredService()); services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddSingleton, ConsoleAppKeyService>(); services.TryAddSingleton(); services.AddSingleton(); services.TryAddSingleton(new ApplicationConfiguration(true)); services.Configure(configuration); services.TryAddSingleton(sp => new ApplicationContext { ConsoleDriver = sp.GetRequiredService() } ); return services; } }