Example #1
0
        private async Task LoadSymbolViewModel()
        {
            if (symbol == null)
            {
                return;
            }

            SymbolViewModel = new SymbolViewModel(
                userAccount.Exchange, exchangeService, chartHelper,
                orderBookHelperFactory.GetOrderBookHelper(userAccount.Exchange),
                tradeHelperFactory.GetTradeHelper(userAccount.Exchange),
                userAccount.Preferences, Logger)
            {
                Dispatcher = ViewModelContext.UiDispatcher
            };

            ObserveSymbol(SymbolViewModel);

            try
            {
                await SymbolViewModel.SetSymbol(symbol);

                SymbolViewModel.IsActive = true;
            }
            catch (Exception ex)
            {
                TradingViewModelException(ex.ToString(), ex);
            }
        }
Example #2
0
        private void DisposeSymbolViewModel()
        {
            if (SymbolViewModel != null)
            {
                SymbolViewModel.Dispose();
                SymbolViewModel = null;
            }

            if (symbolObservableSubscription != null)
            {
                symbolObservableSubscription.Dispose();
                symbolObservableSubscription = null;
            }
        }
Example #3
0
        private void ObserveSymbol(SymbolViewModel symbol)
        {
            var symbolObservable = Observable.FromEventPattern <SymbolEventArgs>(
                eventHandler => symbol.OnSymbolNotification += eventHandler,
                eventHandler => symbol.OnSymbolNotification -= eventHandler)
                                   .Select(eventPattern => eventPattern.EventArgs);

            symbolObservableSubscription = symbolObservable.Subscribe(args =>
            {
                if (args.HasException)
                {
                    TradingViewModelException(args);
                }
            });
        }
Example #4
0
        protected override void OnDisposing()
        {
            if (disposed)
            {
                return;
            }

            symbolsObservableSubscription?.Dispose();
            tradeObservableSubscription?.Dispose();
            accountObservableSubscription.Dispose();
            symbolObservableSubscription?.Dispose();

            AccountViewModel.Dispose();
            SymbolsViewModel?.Dispose();
            TradeViewModel?.Dispose();
            SymbolViewModel?.Dispose();

            disposed = true;
        }
Example #5
0
        private async Task LoadSymbolViewModel()
        {
            if (symbol == null)
            {
                return;
            }

            SymbolViewModel = new SymbolViewModel(
                userAccount.Exchange, exchangeService, chartHelper,
                orderBookHelperFactory.GetOrderBookHelper(userAccount.Exchange),
                tradeHelperFactory.GetTradeHelper(userAccount.Exchange),
                userAccount.Preferences, Logger)
            {
                Dispatcher = ViewModelContext.UiDispatcher
            };

            ObserveSymbol(SymbolViewModel);

            await SymbolViewModel.SetSymbol(symbol).ConfigureAwait(true);

            SymbolViewModel.IsActive = true;
        }