using System; using Avalonia; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Markup.Xaml; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Presence.Desktop.DI; using Presence.Desktop.ViewModels; using Presence.Desktop.Views; namespace Presence.Desktop { public partial class App : Application { public static IServiceProvider? ServiceProvider { get; private set; } public override void Initialize() { AvaloniaXamlLoader.Load(this); } public override void OnFrameworkInitializationCompleted() { var serviceCollection = new ServiceCollection(); serviceCollection.AddCommonService(); serviceCollection.AddLogging(builder => { builder.AddConsole(); builder.SetMinimumLevel(LogLevel.Debug); }); ServiceProvider = serviceCollection.BuildServiceProvider(); if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { desktop.MainWindow = new MainWindow() { DataContext = new MainWindowViewModel(ServiceProvider), }; } base.OnFrameworkInitializationCompleted(); } } }