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); }
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); }
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); } } }