Exemple #1
0
        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);
                }
            }
        }
Exemple #4
0
        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;
        }