public static void SyncTradeData() { var stockList = StockDAL.GetStockList(); var tradeList = SinaBiz.GetTradeList(); if (tradeList.IsNullOrEmpty()) { return; } var dbTradeList = DailyDAL.GetDailyList(tradeList.First().InDate.Value); if (dbTradeList.IsNullOrEmpty()) { DailyDAL.Insert(tradeList); } var newStockList = tradeList.Where(trade => !stockList.Any(stock => stock.StockCode.IsEqual(trade.StockCode))) .Select(stock => { stock.IsNew = "1"; return(stock); }) .ToList(); if (!newStockList.IsNullOrEmpty()) { StockDAL.InsertStock(newStockList); } }
public static void SyncHistoryData(DateTime?from, DateTime?to) { if (!to.HasValue) { to = DateTime.Now.AddDays(1); } var tradeList = SinaBiz.GetTradeList(); if (tradeList.IsNullOrEmpty()) { return; } var stocklist = tradeList; for (int i = 0; i < stocklist.Count; i++) { var fromDate = DailyDAL.GetMaxDaily(stocklist[i].StockCode); var list = WYStockBiz.HistoryTradeList(stocklist[i].StockCode , fromDate.GetValueOrDefault(DateTime.Now.AddYears(-10)).AddDays(1) , to.Value); if (list.Count > 0) { ThreadPool.QueueUserWorkItem(state => { DailyDAL.Insert(list); }); } LogFactory.Instance.Write($"{i}/{stocklist.Count}"); } }