#pragma warning disable IDE1006 // Naming Styles private static async Task Main(string[] args) #pragma warning restore IDE1006 // Naming Styles { Logger.InitializeDefaults(Path.Combine(Global.DataDir, "Logs.txt")); StatusBarViewModel statusBar = null; try { Platform.BaseDirectory = Path.Combine(Global.DataDir, "Gui"); AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException; BuildAvaloniaApp() .BeforeStarting(async builder => { MainWindowViewModel.Instance = new MainWindowViewModel(); var configFilePath = Path.Combine(Global.DataDir, "Config.json"); var config = new Config(configFilePath); await config.LoadOrCreateDefaultFileAsync(); Logger.LogInfo <Config>("Config is successfully initialized."); Global.InitializeConfig(config); if (!File.Exists(Global.IndexFilePath)) // Load the index file from working folder if we have it. { var cachedIndexFilePath = Path.Combine("Assets", Path.GetFileName(Global.IndexFilePath)); if (File.Exists(cachedIndexFilePath)) { File.Copy(cachedIndexFilePath, Global.IndexFilePath, overwrite: false); } } Global.InitializeNoWallet(); statusBar = new StatusBarViewModel(Global.Nodes.ConnectedNodes, Global.Synchronizer, Global.UpdateChecker); MainWindowViewModel.Instance.StatusBar = statusBar; if (Global.Synchronizer.Network != Network.Main) { MainWindowViewModel.Instance.Title += $" - {Global.Synchronizer.Network}"; } }).StartShellApp <AppBuilder, MainWindow>("Wasabi Wallet", null, () => MainWindowViewModel.Instance); } catch (Exception ex) { Logger.LogCritical <Program>(ex); throw; } finally { MainWindowViewModel.Instance?.Dispose(); statusBar?.Dispose(); await Global.DisposeAsync(); AppDomain.CurrentDomain.UnhandledException -= CurrentDomain_UnhandledException; TaskScheduler.UnobservedTaskException -= TaskScheduler_UnobservedTaskException; } }
#pragma warning disable IDE1006 // Naming Styles private static async Task Main(string[] args) #pragma warning restore IDE1006 // Naming Styles { StatusBarViewModel statusBar = null; try { MainWindowViewModel.Instance = new MainWindowViewModel(); BuildAvaloniaApp().AfterSetup(async builder => { try { Logger.InitializeDefaults(Path.Combine(Global.DataDir, "Logs.txt")); var configFilePath = Path.Combine(Global.DataDir, "Config.json"); var config = new Config(configFilePath); await config.LoadOrCreateDefaultFileAsync(); Logger.LogInfo <Config>("Config is successfully initialized."); Global.InitializeConfig(config); if (!File.Exists(Global.IndexFilePath)) // Load the index file from working folder if we have it. { var cachedIndexFilePath = Path.Combine("Assets", Path.GetFileName(Global.IndexFilePath)); if (File.Exists(cachedIndexFilePath)) { File.Copy(cachedIndexFilePath, Global.IndexFilePath, overwrite: false); } } Global.InitializeNoWallet(); statusBar = new StatusBarViewModel(Global.Nodes.ConnectedNodes, Global.MemPoolService, Global.IndexDownloader, Global.UpdateChecker); MainWindowViewModel.Instance.StatusBar = statusBar; if (Global.IndexDownloader.Network != Network.Main) { MainWindowViewModel.Instance.Title += $" - {Global.IndexDownloader.Network}"; } } catch (Exception ex) { Logger.LogCritical <Program>(ex); } }).StartShellApp <AppBuilder, MainWindow>("Wasabi Wallet", new DefaultLayoutFactory(), () => MainWindowViewModel.Instance); } catch (Exception ex) { Logger.LogCritical <Program>(ex); } finally { statusBar?.Dispose(); await Global.DisposeAsync(); } }