protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); //Current.Resources.MergedDictionaries.Add(new ResourceDictionary() //{ // Source = new Uri("Themes/blue.xaml", UriKind.Relative) //}); // ensure there are no other instances of the app //if (!SingleApp.TryStart("AtomexApp")) //{ // Current.Shutdown(300); // return; //} // init logger Log.Logger = new LoggerConfiguration() .ReadFrom.Configuration(Configuration) .CreateLogger(); Log.Information("Application startup"); var currenciesProvider = new CurrenciesProvider(CurrenciesConfigurationJson); var symbolsProvider = new SymbolsProvider(SymbolsConfiguration); // init Atomex client app AtomexApp = new AtomexApp() .UseCurrenciesProvider(currenciesProvider) .UseSymbolsProvider(symbolsProvider) .UseCurrenciesUpdater(new CurrenciesUpdater(currenciesProvider)) .UseSymbolsUpdater(new SymbolsUpdater(symbolsProvider)) .UseQuotesProvider(new BitfinexQuotesProvider( currencies: currenciesProvider.GetCurrencies(Network.MainNet), baseCurrency: BitfinexQuotesProvider.Usd)); // init app updater Updater = new Updater() //.UseLocalBinariesProvider(@"Atomex.Client.Wpf.Installer.msi") //.UseLocalVersionProvider(@"version.json") .UseHttpMetadataProvider("https://atomex.me/versions.json", TargetPlatform.Windows) .UseMsiProductProvider("DB7FCF8D-E0C6-4C99-A6B1-3FB6D703F97E"); // init & show main view var mainView = new MainWindow(); mainView.DataContext = new MainViewModel(AtomexApp, mainView, mainView); mainView.Show(); mainView.ShowDialog(Dialogs.Start, new StartViewModel(AtomexApp, mainView)); MainWindow = mainView; AtomexApp.Start(); try { Updater.Start(); } catch (TimeoutException) { Log.Error("Failed to start the updater due to timeout"); } }
public override void OnFrameworkInitializationCompleted() { TemplateService = new TemplateService(); ImageService = new ImageService(); Clipboard = AvaloniaLocator.Current.GetService <IClipboard>(); // init logger Log.Logger = new LoggerConfiguration() #if DEBUG .ReadFrom.Configuration(Configuration) #else .WriteTo.Sentry(o => { o.Dsn = new Dsn("https://[email protected]/8"); // Debug and higher are stored as breadcrumbs (default is Information) o.MinimumBreadcrumbLevel = LogEventLevel.Information; // Warning and higher is sent as event (default is Error) o.MinimumEventLevel = LogEventLevel.Error; }) #endif .CreateLogger(); var currenciesProvider = new CurrenciesProvider(CurrenciesConfigurationString); var symbolsProvider = new SymbolsProvider(SymbolsConfiguration); // init Atomex client app AtomexApp = new AtomexApp() .UseCurrenciesProvider(currenciesProvider) .UseSymbolsProvider(symbolsProvider) .UseCurrenciesUpdater(new CurrenciesUpdater(currenciesProvider)) .UseSymbolsUpdater(new SymbolsUpdater(symbolsProvider)) .UseQuotesProvider(new BitfinexQuotesProvider( currencies: currenciesProvider.GetCurrencies(Network.MainNet), baseCurrency: BitfinexQuotesProvider.Usd)); if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { var mainWindow = new MainWindow(); DialogService = new DialogService <DialogServiceView>(mainWindow); var mainWindowViewModel = new MainWindowViewModel(AtomexApp, mainWindow); mainWindow.DataContext = mainWindowViewModel; desktop.MainWindow = mainWindow; desktop.Exit += OnExit; // var sink = new InMemorySink(mainWindowViewModel.LogEvent); // Log.Logger = new LoggerConfiguration() // .WriteTo.Sink(sink) // .CreateLogger(); } AtomexApp.Start(); base.OnFrameworkInitializationCompleted(); }