using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using SewerStammGen.HostBuilders; using SewerStammGen.WPF.ViewModel; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Linq; using System.Threading.Tasks; using System.Windows; namespace SewerStammGen.WPF { /// /// Interaction logic for App.xaml /// public partial class App : Application { private readonly IHost _host; public App() { _host = CreateHostBuilder().Build(); } static IHostBuilder CreateHostBuilder(string[]? args = null) { return Host.CreateDefaultBuilder(args) .AddConfiguration() .AddServices() .AddViewModels() .AddStores() .AddDBContext(); } protected override void OnStartup(StartupEventArgs e) { Application.Current.DispatcherUnhandledException += Current_DispatcherUnhandledException; AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; _host.Start(); MainWindow? window = new MainWindow() { DataContext = _host.Services.GetRequiredService() }; window.Show(); base.OnStartup(e); } private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { try { Exception ex = (Exception)e.ExceptionObject; string text = "An application error occured. Plrease contact the Administrator with the following information:\n\n"; MessageBox.Show(text + " " + ex.Message + "\n\n" + ex.StackTrace); } catch (Exception ex2) { MessageBox.Show("Fatal Non-UI error", ex2.Message, MessageBoxButton.OK, MessageBoxImage.Error); } } private void Current_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) { throw new NotImplementedException(); } } }