using System;
using System.Threading.Tasks;
using MassiveKnob.Model;
using MassiveKnob.Settings;
using MassiveKnob.View;
using MassiveKnob.ViewModel;
using SimpleInjector;
namespace MassiveKnob
{
public static class Program
{
///
/// The main entry point for the application.
///
[STAThread]
public static void Main()
{
MainAsync().GetAwaiter().GetResult();
}
private static async Task MainAsync()
{
var container = new Container();
container.Options.EnableAutoVerification = false;
container.RegisterSingleton();
container.Register();
container.Register();
container.Register();
var settings = await SettingsJsonSerializer.Deserialize();
container.RegisterInstance(settings);
var pluginManager = new PluginManager();
pluginManager.Load();
container.RegisterInstance(pluginManager);
var app = container.GetInstance();
app.Run();
}
}
}