48 lines
1.6 KiB
C#
48 lines
1.6 KiB
C#
using System.Windows;
|
|
|
|
namespace Zcbot.WindowsNode;
|
|
|
|
internal sealed class App : System.Windows.Application
|
|
{
|
|
private readonly NodeApplicationController controller;
|
|
private TrayHost? trayHost;
|
|
|
|
internal App(NodeApplicationController controller)
|
|
{
|
|
this.controller = controller;
|
|
ShutdownMode = ShutdownMode.OnExplicitShutdown;
|
|
Resources.MergedDictionaries.Add(new ResourceDictionary
|
|
{
|
|
Source = new Uri(
|
|
"pack://application:,,,/Zcbot.WindowsNode;component/Presentation/Themes/LightTheme.xaml",
|
|
UriKind.Absolute),
|
|
});
|
|
}
|
|
|
|
protected override void OnStartup(StartupEventArgs eventArgs)
|
|
{
|
|
base.OnStartup(eventArgs);
|
|
var viewModel = new MainWindowViewModel(
|
|
new StartupRegistrationService(),
|
|
new DiagnosticService(controller.Paths),
|
|
new SoftwarePageViewModel(
|
|
new SoftwareManagementService(controller.Paths)),
|
|
new JobPageViewModel(
|
|
new JobMonitorService(controller.Paths.JobsDirectory)),
|
|
new AnsysAcceptanceViewModel(
|
|
new AnsysAcceptanceService(controller.Paths)),
|
|
new DataRootPageViewModel(
|
|
new DataRootManagementService(controller.Paths)));
|
|
var window = new MainWindow(viewModel);
|
|
MainWindow = window;
|
|
trayHost = new TrayHost(controller, window, Shutdown);
|
|
trayHost.Start();
|
|
}
|
|
|
|
protected override void OnExit(ExitEventArgs eventArgs)
|
|
{
|
|
trayHost?.Dispose();
|
|
base.OnExit(eventArgs);
|
|
}
|
|
}
|