public void SubscribeCandlesticks(string symbol, Interface.Model.CandlestickInterval candlestickInterval, int limit, Action <CandlestickEventArgs> callback, Action <Exception> exception, CancellationToken cancellationToken) { try { var interval = candlestickInterval.ToBinanceCandlestickInterval(); var canclestickCache = new CandlestickCache(binanceApi, new CandlestickWebSocketClient()); canclestickCache.Subscribe(symbol, interval, limit, e => { if (cancellationToken.IsCancellationRequested) { canclestickCache.Unsubscribe(); return; } try { var candlesticks = (from c in e.Candlesticks select NewCandlestick(c)).ToList(); callback.Invoke(new CandlestickEventArgs { Candlesticks = candlesticks }); } catch (Exception ex) { canclestickCache.Unsubscribe(); exception.Invoke(ex); } }); } catch (Exception ex) { exception.Invoke(ex); } }
public async Task <IEnumerable <Interface.Model.Candlestick> > GetCandlesticksAsync(string symbol, Interface.Model.CandlestickInterval interval, DateTime startTime, DateTime endTime, int limit = 0, CancellationToken token = default(CancellationToken)) { var candlestickInterval = interval.ToBinanceCandlestickInterval(); var results = await binanceApi.GetCandlesticksAsync(symbol, candlestickInterval, startTime, endTime, limit, token).ConfigureAwait(false); var candlesticks = results.Select(cs => NewCandlestick(cs)).ToList(); return(candlesticks); }