예제 #1
0
        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();
            }
        }
예제 #2
0
        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;
        }
예제 #3
0
        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);
        }