using System;
using System.Windows;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Wabbajack.Common;
using Wabbajack;
using Wabbajack.Services.OSIntegrated;
using Wabbajack.Util;
namespace Wabbajack
{
///
/// Interaction logic for App.xaml
///
public partial class App
{
private readonly IServiceProvider _serviceProvider;
public App()
{
var services = new ServiceCollection();
var host = Host.CreateDefaultBuilder(Array.Empty())
//.ConfigureLogging(c => { c.ClearProviders(); })
.ConfigureServices((host, services) => { ConfigureServices(services); }).Build();
_serviceProvider = host.Services;
}
private IServiceCollection ConfigureServices(IServiceCollection services)
{
services.AddOSIntegrated();
services.AddTransient();
services.AddTransient();
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
services.AddTransient();
services.AddTransient();
services.AddTransient();
services.AddTransient();
return services;
}
private void OnStartup(object sender, StartupEventArgs e)
{
var mainWindow = _serviceProvider.GetRequiredService();
mainWindow!.Show();
}
}
}