Ejemplo n.º 1
0
        public App()
        {
            InitializeComponent();
            LoadStyles();

            DependencyService.Get <INotificationManager>().Initialize();

            var currenciesProvider = new CurrenciesProvider(CurrenciesConfigurationJson);

            var symbolsProvider = new SymbolsProvider(SymbolsConfiguration);

            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));

            AtomexApp.Start();

            StartViewModel startViewModel = new StartViewModel(AtomexApp);

            MainPage = new NavigationPage(new StartPage(startViewModel));
            startViewModel.Navigation = MainPage.Navigation;

            Current.RequestedThemeChanged += (s, a) =>
            {
                Device.BeginInvokeOnMainThread(SetAppTheme);
            };
            SetAppTheme();
        }
Ejemplo n.º 2
0
        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"); }
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            // ensure there are no other instances of the app
            //if (!SingleApp.TryStart("AtomixApp"))
            //{
            //    Current.Shutdown(300);
            //    return;
            //}

            // init logger
            Log.Logger = new LoggerConfiguration()
                         .ReadFrom.Configuration(Configuration)
                         .CreateLogger();

            Log.Information("Application startup");

            var currenciesProvider = new CurrenciesProvider(CurrenciesConfiguration);
            var symbolsProvider    = new SymbolsProvider(SymbolsConfiguration, currenciesProvider);

            // init Atomix client app
            AtomixApp = new AtomixApp()
                        .UseCurrenciesProvider(currenciesProvider)
                        .UseSymbolsProvider(symbolsProvider)
                        .UseQuotesProvider(new BitfinexQuotesProvider(
                                               currencies: currenciesProvider.GetCurrencies(Network.MainNet),
                                               baseCurrency: BitfinexQuotesProvider.Usd))
                        .UseTerminal(new Terminal(Configuration));

            // init app updater
            Updater = new Updater()
                      //.UseLocalBinariesProvider(@"Atomix.Client.Wpf.Installer.msi")
                      //.UseLocalVersionProvider(@"version.json")
                      .UseHttpMetadataProvider("https://atomix.me/versions.json", TargetPlatform.Windows)
                      .UseMsiProductProvider("0779aaaa-2411-4948-b5bc-48f81b8c6143");

            // init & show main view
            var mainView = new MainWindow();

            mainView.DataContext = new MainViewModel(AtomixApp, mainView, mainView);
            mainView.Show();
            mainView.ShowStartDialog(new StartViewModel(AtomixApp, mainView));

            MainWindow = mainView;

            AtomixApp.Start();
            try { Updater.Start(); }
            catch (TimeoutException) { Log.Error("Failed to start the updater due to timeout"); }
        }