using InkForge.Data; using InkForge.Desktop.Data; using InkForge.Desktop.Data.Options; using InkForge.Desktop.Dock; using InkForge.Desktop.Managers; using InkForge.Desktop.Models; using InkForge.Desktop.ViewModels; using Microsoft.EntityFrameworkCore; using ReactiveUI; using Splat; namespace Microsoft.Extensions.DependencyInjection; public static class InkForgeServiceCollections { public static IServiceCollection AddInkForge(this IServiceCollection services) { services.AddHttpClient(); // Singletons // - Concrete services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); // Scoped // - Concrete services.AddScoped(); // - Service services.AddScoped, NoteDbContextFactory>(); services.AddScoped(); // - Forwarders services.AddScoped(s => s.GetRequiredService().Workspace!); Locator.CurrentMutable.RegisterViewsForViewModels(typeof(InkForgeServiceCollections).Assembly); return services; } }