private void _store_candles(string fstr, string d2) { DataTable dic = default(DataTable); QuandlAPI.QuandlError err = default(QuandlAPI.QuandlError); WnF_DBType dbt = (WnF_DBType)Properties.Settings.Default.dbms; string cstr; err = _api.GetCandlesTable(fstr, d2, out dic, _tname); if (err != null) { Console.WriteLine("[QuandlChart._store_candles()] GetCandlesTable failed...\r\n" + err.message); return; } #if DEBUG dynamic watch = System.Diagnostics.Stopwatch.StartNew(); #endif cstr = string.Format(Properties.Settings.Default.dbConn, _database); using (WnFDbConnectionWrapper dbcw = WnFDbConnectionWrapper.GetWrapper(dbt, cstr)) dbcw.InsertTable(dic); #if DEBUG watch.Stop(); Console.WriteLine("[QuandlChart._store_candles()] " + dic.Rows.Count + " ellapsed " + watch.ElapsedMilliseconds); #endif dic = null; }
public int GetCandles() { QuandlAPI.QuandlError err = default(QuandlAPI.QuandlError); DataTable dt = default(DataTable); bool append; string d1, d2; int no_candles = 0; string fstr; if (!_api.ReadURLString("Candles", out fstr)) { MessageBox.Show("Error reading URL format string for candles.", Properties.Settings.Default.tm, MessageBoxButtons.OK); return((int)APIError.APIUrlFormat); } append = _is_append(out d1); d2 = DateTime.Today.ToString("yyyy-MM-dd"); fstr = _api.Get_URL(_database, _stockcode, ((QuandlAPI.QuandlPeriod)_period).ToString(), d1, "{0}", "{1}"); if (!append) { Console.WriteLine("[QuandlChart.GetCandles()] calling _store_candles async for " + _stockcode); d_store_candles d = _store_candles; d.BeginInvoke(fstr.Replace("&rows={1}", ""), d2, null, null); err = _api.GetCandlesTable(string.Format(fstr, "{0}", QuandlAPI._MAX_JSON), d2, out _dohlcv); return((err == null) ? 0 :err.ToInt()); } else { if (DateTime.Parse(d2) < DateTime.Parse(d1)) { d2 = string.Empty; } err = _api.GetCandlesTable(fstr.Replace("&rows={1}", ""), d2, out dt, _tname); if (err != null) { return(err.ToInt()); } no_candles = (dt.Rows.Count > 0) ? _dbc_wr.AppendTable(dt): 1; dt = null; return(no_candles); } }