protected override void OnDisposing() { base.OnDisposing(); if (AccountViewModel != null) { AccountViewModel.Dispose(); } foreach (var symbol in Symbols) { symbol.Dispose(); } if (SymbolsViewModel != null) { SymbolsViewModel.Dispose(); } if (TradeViewModel != null) { TradeViewModel.Dispose(); } if (OrdersViewModel != null) { OrdersViewModel.Dispose(); } }
protected override async void OnPublished(object data) { if (isOpen) { return; } IsBusy = true; if (Messages != null && Messages.Any()) { ClearMessages(); } accountViewModel.Dispatcher = ViewModelContext.UiDispatcher; symbolsViewModel.Dispatcher = ViewModelContext.UiDispatcher; tradeViewModel.Dispatcher = ViewModelContext.UiDispatcher; ordersViewModel.Dispatcher = ViewModelContext.UiDispatcher; Account = new Account(new Interface.AccountInfo { User = new Interface.User() }); userAccount = accountsService.GetAccount(Title); if (userAccount != null && userAccount.Preferences != null) { if (!string.IsNullOrWhiteSpace(userAccount.ApiKey)) { Account.ApiKey = userAccount.ApiKey; Account.ApiSecret = userAccount.ApiSecret; } } SymbolsViewModel.SetAccount(userAccount); AccountViewModel.SetAccount(account); isOpen = true; IsBusy = false; }
public TradingViewModel(ViewModelContext viewModelContext, AccountViewModel accountViewModel, SymbolsViewModel symbolsViewModel, TradeViewModel tradeViewModel, OrdersViewModel ordersViewModel, IWpfExchangeService exchangeService, IAccountsService accountsService) : base(viewModelContext) { AccountViewModel = accountViewModel; SymbolsViewModel = symbolsViewModel; TradeViewModel = tradeViewModel; OrdersViewModel = ordersViewModel; Symbols = new ObservableCollection <SymbolViewModel>(); this.exchangeService = exchangeService; this.accountsService = accountsService; ObserveSymbols(); ObserveAccount(); ObserveTrade(); ObserveOrders(); CloseCommand = new ViewModelCommand(Close); }