コード例 #1
0
        public async Task <StockChartModel> GetRealTimeTradeChartAsync(StockInfoItem stockItem)
        {
            TwseStockClient client = new TwseStockClient();
            var             resutl = await client.QueryRealTimeTradeChartAsync(stockItem.Convert());

            return(resutl);
        }
コード例 #2
0
        public async Task <RealTimeStockItem> GetRealTimeStockAsync(StockInfoItem stockItem)
        {
            GoogleStockClient  client    = new GoogleStockClient();
            RealTimeStockModel stockData = await client.QueryStockAsync(stockItem.Id);

            return(RealTimeStockItem.ConvertFrom(stockData));
        }
コード例 #3
0
        public async Task LoadChart()
        {
            var stockInfo = new StockInfoItem
            {
                Id         = StockValueContext.Id,
                MarketType = StockValueContext.ExchangeTypeKey,
                Name       = StockValueContext.Name
            };
            StockChartModel chartModel = await _queryService.GetRealTimeTradeChartAsync(stockInfo);

            // Set the start and end value to y axis
            SetOpenCloseTimeToCharAxis(chartModel);

            // Set the top and bottom value for the chart
            SetUpDownLimitLineToChart(chartModel.StockMessage);

            // Draw the middle, up and down extra line for the chart
            DrawExtraLines(chartModel.StockMessage);

            // 設定股價座標顯示的區間次數
            SetPriceTickInterval(Convert.ToDouble(chartModel.StockMessage.LimitUp), Convert.ToDouble(chartModel.StockMessage.LimitDown), 5);

            // Add stock point to chart
            foreach (var point in chartModel.ChartData)
            {
                DateTime xDateTime = DateTimeUtils.UnixTimeStampToDateTime(Convert.ToDouble(point.Timestemp));
                var      axisPoint = DateTimeAxis.CreateDataPoint(xDateTime, Convert.ToDouble(point.Value));
                ChartDataCollection.Add(axisPoint);
            }
        }
コード例 #4
0
 public static StockInfoModel Convert(this StockInfoItem stockItem)
 {
     return(new StockInfoModel
     {
         Id = stockItem.Id,
         Category = stockItem.Category,
         MarketType = stockItem.MarketType,
         Name = stockItem.Name
     });
 }
コード例 #5
0
        public void Add(StockInfoItem item)
        {
            var stockEntity = new StockEntity
            {
                Id         = item.Id,
                Name       = item.Name,
                MarketType = item.MarketType,
                Category   = item.Category
            };

            using (StockUnitOfWork db = new StockUnitOfWork())
            {
                db.Stock.Add(stockEntity);
                db.SaveChanges();
            }
        }
コード例 #6
0
        public void Add(StockInfoItem item)
        {
            using (StockUnitOfWork db = new StockUnitOfWork())
            {
                // check if the stock is exist in favorite table
                if (db.FavoriteStock.GetById(item.Id) != null)
                {
                    throw new FavoriteStockExistException(item.Id, item.Name);
                }

                StockEntity stockEntity         = db.Stock.GetById(item.Id);
                var         favoriteStockEntity = new FavoriteStockEntity
                {
                    Id          = item.Id,
                    ParentStock = stockEntity,
                    // TODO : it must rewrite the category source from category table
                    //CustomCategory = item.Category,
                    Order = item.Order
                };
                db.FavoriteStock.Add(favoriteStockEntity);
                db.SaveChanges();
            }
        }
コード例 #7
0
        public async Task LoadChart()
        {
            var stockInfo = new StockInfoItem
            {
                Id = StockValueContext.Id,
                MarketType = StockValueContext.ExchangeTypeKey,
                Name = StockValueContext.Name
            };
            StockChartModel chartModel = await _queryService.GetRealTimeTradeChartAsync(stockInfo);

            // Set the start and end value to y axis
            SetOpenCloseTimeToCharAxis(chartModel);

            // Set the top and bottom value for the chart
            SetUpDownLimitLineToChart(chartModel.StockMessage);

            // Draw the middle, up and down extra line for the chart
            DrawExtraLines(chartModel.StockMessage);

            // 設定股價座標顯示的區間次數
            SetPriceTickInterval(Convert.ToDouble(chartModel.StockMessage.LimitUp), Convert.ToDouble(chartModel.StockMessage.LimitDown), 5);
           
            // Add stock point to chart
            foreach (var point in chartModel.ChartData)
            {
                DateTime xDateTime = DateTimeUtils.UnixTimeStampToDateTime(Convert.ToDouble(point.Timestemp));
                var axisPoint = DateTimeAxis.CreateDataPoint(xDateTime, Convert.ToDouble(point.Value));
                ChartDataCollection.Add(axisPoint);
            }
        }