private StockDetailEntity GetStockDetailEntity(IReadOnlyCollection <IWebElement> cells)
        {
            var counter = 0;

            var stockDetailEntity = new StockDetailEntity
            {
                Stock = new StockEntity {
                }
            };

            foreach (var cell in cells)
            {
                switch (counter)
                {
                case 0:
                {
                    var date = long.Parse(DateTime.Parse(cell.Text).ToString("yyyyMMdd"));
                    stockDetailEntity.Date = date;
                    break;
                }

                case 1:
                {
                    decimal val;

                    if (decimal.TryParse(FilterNumber(cell.Text), out val))
                    {
                        stockDetailEntity.Price = val;
                    }

                    break;
                }

                case 2:
                {
                    decimal val;

                    if (decimal.TryParse(FilterNumber(cell.Text), out val))
                    {
                        stockDetailEntity.Change = val;
                    }

                    break;
                }

                case 3:
                {
                    decimal val;

                    if (decimal.TryParse(FilterNumber(cell.Text), out val))
                    {
                        stockDetailEntity.ChangePercent = val;
                    }

                    break;
                }

                case 5:
                {
                    decimal val;

                    if (decimal.TryParse(FilterNumber(cell.Text), out val))
                    {
                        stockDetailEntity.High = val;
                    }

                    break;
                }

                case 6:
                {
                    decimal val;

                    if (decimal.TryParse(FilterNumber(cell.Text), out val))
                    {
                        stockDetailEntity.Low = val;
                    }

                    break;
                }

                case 7:
                {
                    decimal val;

                    if (decimal.TryParse(FilterNumber(cell.Text), out val))
                    {
                        stockDetailEntity.Volume = val;
                    }

                    break;
                }

                case 8:
                {
                    decimal val;

                    if (decimal.TryParse(FilterNumber(cell.Text), out val))
                    {
                        stockDetailEntity.MarketCapital = val;
                    }

                    break;
                }
                }

                counter++;
            }

            return(stockDetailEntity);
        }
Beispiel #2
0
        private StockDetailEntity GetStockDetailEntity(IReadOnlyCollection <IWebElement> cells)
        {
            var counter = 0;

            var stockDetailEntity = new StockDetailEntity
            {
                Stock = new StockEntity {
                }
            };

            foreach (var cell in cells)
            {
                switch (counter)
                {
                case 0:
                {
                    if (DateTime.Now.DayOfWeek == DayOfWeek.Saturday)
                    {
                        stockDetailEntity.Date = long.Parse(DateTime.Now.AddDays(-1).ToString("yyyyMMdd"));
                    }
                    else if (DateTime.Now.DayOfWeek == DayOfWeek.Sunday)
                    {
                        stockDetailEntity.Date = long.Parse(DateTime.Now.AddDays(-2).ToString("yyyyMMdd"));
                    }
                    else if (DateTime.Now.DayOfWeek == DayOfWeek.Monday)
                    {
                        var currTime = long.Parse(DateTime.Now.ToString("HHmmss"));
                        stockDetailEntity.Date = currTime < 100000 ? long.Parse(DateTime.Now.AddDays(-3).ToString("yyyyMMdd")) : long.Parse(DateTime.Now.ToString("yyyyMMdd"));
                    }
                    else
                    {
                        var currTime = long.Parse(DateTime.Now.ToString("HHmmss"));
                        stockDetailEntity.Date = currTime < 100000 ? long.Parse(DateTime.Now.AddDays(-1).ToString("yyyyMMdd")) : long.Parse(DateTime.Now.ToString("yyyyMMdd"));
                    }
                    break;
                }

                case 1:
                {
                    var flag = false;
                    stockDetailEntity.Stock.Code = FilterText(cell.Text, out flag);
                    break;
                }

                case 2:
                {
                    var flag = false;
                    stockDetailEntity.Stock.Name = FilterText(cell.Text, out flag);
                    stockDetailEntity.Flag1      = flag;
                    break;
                }

                case 3:
                {
                    decimal val;

                    if (decimal.TryParse(FilterNumber(cell.Text), out val))
                    {
                        stockDetailEntity.Price = val;
                    }

                    break;
                }

                case 4:
                {
                    decimal val;

                    if (decimal.TryParse(FilterNumber(cell.Text), out val))
                    {
                        stockDetailEntity.Change = val;
                    }

                    break;
                }

                case 5:
                {
                    decimal val;

                    if (decimal.TryParse(FilterNumber(cell.Text), out val))
                    {
                        stockDetailEntity.ChangePercent = val;
                    }

                    break;
                }

                case 6:
                {
                    decimal val;

                    if (decimal.TryParse(FilterNumber(cell.Text), out val))
                    {
                        stockDetailEntity.High = val;
                    }

                    break;
                }

                case 7:
                {
                    decimal val;

                    if (decimal.TryParse(FilterNumber(cell.Text), out val))
                    {
                        stockDetailEntity.Low = val;
                    }

                    break;
                }

                case 8:
                {
                    decimal val;

                    if (decimal.TryParse(FilterNumber(cell.Text), out val))
                    {
                        stockDetailEntity.Volume = val;
                    }

                    break;
                }

                case 9:
                {
                    decimal val;

                    if (decimal.TryParse(FilterNumber(cell.Text), out val))
                    {
                        stockDetailEntity.MarketCapital = val;
                    }

                    break;
                }

                case 10:
                {
                    decimal val;

                    if (decimal.TryParse(FilterNumber(cell.Text), out val))
                    {
                        stockDetailEntity.OneYearChange = val;
                    }

                    break;
                }
                }

                counter++;
            }

            return(stockDetailEntity);
        }
Beispiel #3
0
        public StockDetailEntity PushStockDetail(long?indexId, StockDetailEntity stockDetailEntity, DateTime dateTime)
        {
            var indexEntity = default(IndexEntity);

            if (indexId != null)
            {
                indexEntity = UnitOfWork.IndexRepository.FindBy(x => x.Id.Equals(indexId.Value)).FirstOrDefault();
            }

            if (!UnitOfWork.StockRepository.FindBy(x => x.Code.Equals(stockDetailEntity.Stock.Code, StringComparison.CurrentCultureIgnoreCase)).Any())
            {
                var stockDetail = new StockDetailEntity
                {
                    Date            = stockDetailEntity.Date,
                    Price           = stockDetailEntity.Price,
                    Change          = stockDetailEntity.Change,
                    ChangePercent   = stockDetailEntity.ChangePercent,
                    High            = stockDetailEntity.High,
                    Low             = stockDetailEntity.Low,
                    Volume          = stockDetailEntity.Volume,
                    MarketCapital   = stockDetailEntity.MarketCapital,
                    OneYearChange   = stockDetailEntity.OneYearChange,
                    Flag1           = stockDetailEntity.Flag1,
                    DateTimeCreated = dateTime,
                };

                var stock = new StockEntity
                {
                    Code            = stockDetailEntity.Stock.Code.ToUpper(),
                    Name            = stockDetailEntity.Stock.Name,
                    Flag1           = false,
                    DateTimeCreated = dateTime,
                    StockDetails    = new List <StockDetailEntity>
                    {
                        stockDetail
                    }
                };

                UnitOfWork.StockRepository.Add(stock);
                indexEntity?.Stocks.Add(stock);

                UnitOfWork.Save();

                return(stockDetail);
            }
            else
            {
                var stock = UnitOfWork.StockRepository.FindBy(x => x.Code.Equals(stockDetailEntity.Stock.Code, StringComparison.CurrentCultureIgnoreCase)).First();

                if (indexEntity != null)
                {
                    if (indexEntity.Stocks.FirstOrDefault(x => x.Id.Equals(stock.Id)) == null)
                    {
                        indexEntity.Stocks.Add(stock);
                    }
                }

                if (UnitOfWork.StockDetailRepository.FindBy(x => x.Date.Equals(stockDetailEntity.Date) && x.StockId.Equals(stock.Id)).Any())
                {
                    var stockDetails = UnitOfWork.StockDetailRepository.FindBy(x => x.Date.Equals(stockDetailEntity.Date) && x.StockId.Equals(stock.Id)).First();

                    stockDetails.Date                 = stockDetailEntity.Date;
                    stockDetails.Price                = stockDetailEntity.Price;
                    stockDetails.Change               = stockDetailEntity.Change;
                    stockDetails.ChangePercent        = stockDetailEntity.ChangePercent;
                    stockDetails.High                 = stockDetailEntity.High;
                    stockDetails.Low                  = stockDetailEntity.Low;
                    stockDetails.Volume               = stockDetailEntity.Volume;
                    stockDetails.MarketCapital        = stockDetailEntity.MarketCapital;
                    stockDetails.OneYearChange        = stockDetailEntity.OneYearChange;
                    stockDetails.Flag1                = stockDetailEntity.Flag1;
                    stockDetails.DateTimeLastModified = dateTime;

                    UnitOfWork.StockDetailRepository.Update(stockDetails);
                    UnitOfWork.Save();

                    return(stockDetails);
                }
                else
                {
                    var stockDetails = new StockDetailEntity
                    {
                        StockId              = stock.Id,
                        Date                 = stockDetailEntity.Date,
                        Price                = stockDetailEntity.Price,
                        Change               = stockDetailEntity.Change,
                        ChangePercent        = stockDetailEntity.ChangePercent,
                        High                 = stockDetailEntity.High,
                        Low                  = stockDetailEntity.Low,
                        Volume               = stockDetailEntity.Volume,
                        MarketCapital        = stockDetailEntity.MarketCapital,
                        OneYearChange        = stockDetailEntity.OneYearChange,
                        Flag1                = stockDetailEntity.Flag1,
                        DateTimeCreated      = dateTime,
                        DateTimeLastModified = dateTime
                    };

                    stock.StockDetails.Add(stockDetails);

                    UnitOfWork.StockRepository.Update(stock);
                    UnitOfWork.Save();

                    return(stockDetails);
                }
            }
        }