private void HandleStockDataResponse(StockDataResponseMessage message) { if (message.IsStartupResponse) { return; } if (message.IsPreviewResponse && message.Security != null) { BuildPreviewSecurity(message); } if (message.IsScreenerResponse && message.Security != null) { ScreenerSecurity = message.Security; } }
private void HandleStockDataResponse(StockDataResponseMessage message) { if (message.IsStartupResponse && message.Securities != null) { _portfolioSecurities = message.Securities; if (_portfolioPositions != null && _portfolioTaxlots != null) { foreach (var pos in _portfolioPositions) { var security = _portfolioSecurities.Find(s => s.Ticker == pos.Ticker); pos.UpdateTaxlotPrices(security.LastPrice); } } } }
/// <summary> /// Get pricing and security info for a single ticker. /// </summary> /// <param name="ticker"></param> /// <returns></returns> public async Task GetSecurityInfo(string ticker, bool isScreener, bool isPreview) { if (!string.IsNullOrEmpty(ticker)) { using (var yahooAPI = new YahooAPIService()) { var result = await yahooAPI.GetSingleSecurity(ticker, _securityDatabaseList); if (!_localMode) { TryDatabaseInsert(result); } var responseMessage = new StockDataResponseMessage(result, isPreview, isScreener); Messenger.Default.Send <StockDataResponseMessage>(responseMessage); } } }
private void BuildPreviewSecurity(StockDataResponseMessage message) { _tradeSecurity = message.Security; var orderOk = CheckOrderTerms(_tradeSecurity); if (orderOk && message.Security is Stock) { PreviewPrice = _tradeSecurity.LastPrice; PreviewDescription = _tradeSecurity.Description; PreviewVolume = ((Stock)_tradeSecurity).Volume.ToString(); PreviewAsk = ((Stock)_tradeSecurity).Ask.ToString(); PreviewAskSize = ((Stock)_tradeSecurity).AskSize.ToString(); PreviewBid = ((Stock)_tradeSecurity).Bid.ToString(); PreviewBidSize = ((Stock)_tradeSecurity).BidSize.ToString(); } else if (orderOk && message.Security is MutualFund) { PreviewPrice = _tradeSecurity.LastPrice; PreviewDescription = _tradeSecurity.Description; PreviewVolume = "Mutual Fund: No Volume"; PreviewAsk = "-"; PreviewAskSize = "-"; PreviewBid = "-"; PreviewBidSize = "-"; } else { var alertMessage = string.Format( @"There is a problem with your order to buy {0} shares of {1}. Please check your order terms.", _orderShareQuantity, _orderTickerText); SetAlertMessage(alertMessage); AlertBoxVisible = true; OrderTermsOK = false; } AlertBoxVisible = false; ExecuteButtonEnabled = true; }