/// <summary> /// Delete symbol from scanner /// </summary> private void DeleteSymbolCommandExecute(object param) { if (WPFMessageBox.Show(_scannerWindow, string.Format("Delete symbol {0}?", (param as MarketDataDetail).Security.Symbol), string.Format("{0} Scanner", _provider.ProviderName), MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { var tickDetail = (MarketDataDetail)param; // Remove from Providers collection _provider.RemoveMarketInformation(tickDetail.Security.Symbol); // Create a new un-subscription request for requesting market data var unsubscriptionRequest = new SubscriptionRequest(tickDetail.Security, _provider, MarketDataType.Tick, SubscriptionType.Unsubscribe); // Raise Event to notify listeners EventSystem.Publish <SubscriptionRequest>(unsubscriptionRequest); // Try to find and to close LOB for removed tick detail string title = string.Format("LOB - {0} ({1})", tickDetail.Security.Symbol, _provider.ProviderName); LimitOrderBookWindow lobWindow = (LimitOrderBookWindow)FindWindowByTitle(title); if (lobWindow != null) { lobWindow.DataContext = null; lobWindow.Close(); } } }
/// <summary> /// Show LOB for current TickDetail /// </summary> /// <param name="param">current TickDetail</param> private void ShowLimitOrderBookExecute(object param) { SelectedTickDetail = (MarketDataDetail)param; string title = string.Format("LOB - {0} ({1})", SelectedTickDetail.Security.Symbol, Provider.ProviderName); // if LOB window is already shown, just activate it LimitOrderBookWindow lobWindow = (LimitOrderBookWindow)FindWindowByTitle(title); if (lobWindow != null) { lobWindow.Activate(); return; } // if LOB window is not already shown, create the new one and show it lobWindow = new LimitOrderBookWindow(); lobWindow.Title = title; lobWindow.DataContext = new LimitOrderBookViewModel(SelectedTickDetail); lobWindow.Show(); }