using Avalonia; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Markup.Xaml; using Asistencia.ViewModels; using Asistencia.Views; using Asistencia.Data; using Asistencia.Data.Repositories; using Asistencia.Services; using Microsoft.Extensions.DependencyInjection; namespace Asistencia; public partial class App : Application { public static IServiceProvider? Services { get; private set; } public override void Initialize() { AvaloniaXamlLoader.Load(this); } public override void OnFrameworkInitializationCompleted() { var services = new ServiceCollection(); services.AddDbContext(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); Services = services.BuildServiceProvider(); using var scope = Services.CreateScope(); var db = scope.ServiceProvider.GetRequiredService(); db.Database.EnsureCreated(); if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { var vm = Services.GetRequiredService(); desktop.MainWindow = new MainWindow { DataContext = vm }; } base.OnFrameworkInitializationCompleted(); } }