wabbajack/Wabbajack.App.Wpf/App.xaml.cs

53 lines
1.7 KiB
C#
Raw Normal View History

2021-12-26 21:56:44 +00:00
using System;
using System.Windows;
2021-12-27 05:13:28 +00:00
using Microsoft.Extensions.DependencyInjection;
2021-12-28 21:39:20 +00:00
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
2021-12-26 21:56:44 +00:00
using Wabbajack.Common;
2021-12-30 00:15:37 +00:00
using Wabbajack;
2021-12-27 05:13:28 +00:00
using Wabbajack.Services.OSIntegrated;
2021-12-28 21:39:20 +00:00
using Wabbajack.Util;
2021-12-26 21:56:44 +00:00
namespace Wabbajack
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
2021-12-27 05:13:28 +00:00
public partial class App
2021-12-26 21:56:44 +00:00
{
2021-12-28 21:39:20 +00:00
private readonly IServiceProvider _serviceProvider;
2021-12-26 21:56:44 +00:00
public App()
{
2021-12-27 05:13:28 +00:00
var services = new ServiceCollection();
2021-12-28 21:39:20 +00:00
var host = Host.CreateDefaultBuilder(Array.Empty<string>())
//.ConfigureLogging(c => { c.ClearProviders(); })
.ConfigureServices((host, services) => { ConfigureServices(services); }).Build();
_serviceProvider = host.Services;
2021-12-27 05:13:28 +00:00
}
2021-12-28 21:39:20 +00:00
private IServiceCollection ConfigureServices(IServiceCollection services)
2021-12-27 05:13:28 +00:00
{
services.AddOSIntegrated();
2021-12-28 21:39:20 +00:00
services.AddTransient<MainWindow>();
services.AddTransient<MainWindowVM>();
services.AddSingleton<SystemParametersConstructor>();
services.AddSingleton<LauncherUpdater>();
services.AddSingleton<MainSettings>();
services.AddTransient<CompilerVM>();
services.AddTransient<InstallerVM>();
services.AddTransient<ModeSelectionVM>();
services.AddTransient<ModListGalleryVM>();
2021-12-28 21:39:20 +00:00
return services;
2021-12-27 05:13:28 +00:00
}
private void OnStartup(object sender, StartupEventArgs e)
{
2021-12-28 21:39:20 +00:00
var mainWindow = _serviceProvider.GetRequiredService<MainWindow>();
2021-12-27 05:13:28 +00:00
mainWindow!.Show();
2021-12-26 21:56:44 +00:00
}
}
}