private IEnumerable<ISecurity> GetData() { try { SecurityInfoApi api = new SecurityInfoApi(); return api.GetAllSecurity(); } catch (Exception ex) { LogHelper.Logger.WriteLine(ex.ToString(), this.ServiceName); return new List<ISecurity>(); } }
public void RefreshKLineData() { // 获取所有证券信息 var securities = new SecurityInfoApi().GetAllSecurity().ToList(); // 检查并更新或增加 foreach (var security in securities) { DateTime? lastTradeDate = appService.GetLastTradeDate(KLineType.Day, security.Code); List<StockKLine> stockKLines = null; if (lastTradeDate == null) { try { stockKLines = wmcloudApi.GetKLineFromWmcloudApi(security.Code); } catch (Exception ex) { //此处异常通常是因为security.Code并不是真正的股票代码(如:166105),此时通联数据并不支持 continue; } } else { try { string startDate = lastTradeDate.Value.AddDays(1).ToString("yyyyMMdd"); stockKLines = wmcloudApi.GetKLineFromWmcloudApi(security.Code, startDate); } catch (Exception ex) { //此处异常通常是因为security.Code并不是真正的股票代码(如:166105),此时通联数据并不支持 continue; } } appService.Add(KLineType.Day, security.Code, stockKLines); } }
private IEnumerable<ISecurity> GetSecurityFromApi() { IEnumerable<ISecurity> result = null; int i = 0; do { try { result = new SecurityInfoApi().GetAllSecurity(); } finally { i++; } // 尝试10次获取数据, 确保能够获取数据成功 if (i > 9) { break; } } while (result == null); return result; }
public void TestReadSecurityInfo() { var securities = new SecurityInfoApi().GetAllSecurity().ToList(); Assert.IsNotNull(securities); Assert.IsTrue(securities.Count > 0); }