Files
JiraTimeBot/src/JiraTimeBot.Ui/App.xaml.cs
T
2019-03-27 10:01:10 +03:00

57 lines
1.7 KiB
C#

using Autofac;
using Autofac.Extras.AggregateService;
using JiraTimeBot.Ui.Models;
using JiraTimeBot.Ui.ViewModels;
using System.Windows;
namespace JiraTimeBot.Ui
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
private IContainer _container;
public App()
{
}
protected override void OnStartup(StartupEventArgs e)
{
var builder = new ContainerBuilder();
builder.Register<MainWindow>(c =>
{
var result = new MainWindow();
result.DataContext = c.Resolve<ApplicationViewModel>();
return result;
}).SingleInstance();
builder.RegisterType<ApplicationModel>().SingleInstance();
builder.RegisterType<ApplicationViewModel>().SingleInstance();
builder.RegisterType<MainPageViewModel>().SingleInstance();
builder.RegisterType<SettingsViewModel>().SingleInstance();
builder.RegisterType<MainPage>().SingleInstance();
builder.RegisterType<SettingsPage>().SingleInstance();
builder.RegisterAggregateService<IRegisteredViewModels>();
builder.RegisterType<ApplicationNavigator>()
.As<IApplicationNavigator>()
.SingleInstance();
_container = builder.Build();
var mainWindow = _container.Resolve<MainWindow>();
var nav = _container.Resolve<IApplicationNavigator>();
nav.NavigateToSettings();
mainWindow.Show();
base.OnStartup(e);
}
}
}