private void InsertTradeBinData(object sender, TradeBinEventArgs e) { var label = e.TradeBin.ToLabel(); var table = $"{Name}_{label}"; var symbols = Symbols.Select(s => s.ToString()); IEnumerable <string> cat; if (e.TradeBin == TradeBin.FiveMinute) { var indices = Indices.Select(i => i.ToIndexString()); cat = symbols.Concat(indices); } else { cat = symbols; } foreach (var symbol in cat) { var response = string.Empty; while (response != "[]") { if (e.EmptyPartial) { // todo what if tradebin table is still empty? response = GetTradeBinsAfterLatest(e.TradeBin, symbol); } else { response = GetTradeBinsBetweenLatest(e.TradeBin, symbol); } EncodeAndStore(response, label); } } }
protected virtual void OnTradeBinPartial(TradeBinEventArgs e) => TradeBinPartial?.Invoke(this, e);