Exemplo n.º 1
0
        public async override void OnActiveChanged(bool isActive)
        {
            try
            {
                if (isActive)
                {
                    var openDocuments = new FindDocumentViewModel {
                        Module = "Trading"
                    };

                    OnGetViewModels(openDocuments);

                    var tradingViewModels = openDocuments.ViewModels.OfType <TradingViewModel>()
                                            .Where(d => d.SymbolViewModel != null && d.SymbolViewModel.IsActive).ToList();

                    foreach (var tradingViewModel in tradingViewModels)
                    {
                        tradingViewModel.DisposeSymbolViewModel();
                    }

                    await LoadSymbolViewModel().ConfigureAwait(false);
                }
                else
                {
                    DisposeSymbolViewModel();
                }
            }
            catch (Exception ex)
            {
                TradingViewModelException(ex.ToString(), ex);
            }
        }
Exemplo n.º 2
0
        private void GetDocuments(object param)
        {
            var documentViewModels = new FindDocumentViewModel();

            OnGetViewModels(documentViewModels);

            ViewModelContext.UiDispatcher.Invoke(
                () =>
            {
                OpenDocuments.Clear();
                documentViewModels.ViewModels.ForEach(vm =>
                {
                    if (vm != this)
                    {
                        OpenDocuments.Add(vm);
                    }
                });
            });
        }
Exemplo n.º 3
0
        /// <summary>
        /// Gets one or more view models based on settings in <see cref="FindDocumentViewModel"/>.
        /// A single view model can be fetched by navigation id, multiple view models can be
        /// fetched by module name, and if neither navigation id or module name is provided then
        /// all document view models will be returned for all views.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="FindDocumentViewModel"/>.</param>
        private void GetViewModels(object sender, FindDocumentViewModel e)
        {
            if (String.IsNullOrEmpty(e.NavigationId) &&
                String.IsNullOrEmpty(e.Module))
            {
                var documentViewModels = ViewContext.NavigationManager.GetAllViewModels();
                e.ViewModels = documentViewModels;
                return;
            }

            if (!String.IsNullOrEmpty(e.NavigationId))
            {
                var documentViewModel = ViewContext.NavigationManager.GetViewModel(e.NavigationId);
                e.ViewModel = documentViewModel;
            }

            if (!String.IsNullOrEmpty(e.Module))
            {
                var documentViewModels = ViewContext.NavigationManager.GetViewModels(e.Module);
                e.ViewModels = documentViewModels;
            }
        }