using Avalonia.Controls.Templates; using Dock.Model.Core; using InkForge.Data; using InkForge.Desktop; using InkForge.Desktop.Data; using InkForge.Desktop.Data.Options; using InkForge.Desktop.Managers; using InkForge.Desktop.Models; using InkForge.Desktop.ViewModels.Workspaces; using InkForge.Desktop.ViewModels.Workspaces.Internal; using Microsoft.EntityFrameworkCore; namespace Microsoft.Extensions.DependencyInjection; public static class InkForgeServiceCollections { public static IServiceCollection AddInkForge(this IServiceCollection services) { services.AddHttpClient(); // Singletons // - Concrete services.AddSingleton(); services.AddSingleton(); // - Service services.AddSingleton(); services.AddSingleton(); // Scoped // - Concrete services.AddScoped(); services.AddScoped(); services.AddScoped(); // - Service services.AddScoped, NoteDbContextFactory>(); services.AddScoped(); // - Forwarders services.AddScoped(s => s.GetRequiredService().Workspace!); return services; } }