private async void FetchTradeBins(Object source, System.Timers.ElapsedEventArgs e) { Console.WriteLine("Fetching bins."); Debug.WriteLine("Fetching bins."); using (var context = new CollectorContext()) { try { var latestBin = context.TradeBins.OrderByDescending(x => x.Timestamp).FirstOrDefault(); var @params = new TradeBucketedGETRequestParams { BinSize = "1m", Symbol = "XBTUSD", Count = 200, Reverse = true }; // act var result = new List <TradeBucketedDto>(); try { result = _bitmexApiService.Execute(BitmexApiUrls.Trade.GetTradeBucketed, @params).Result; } catch (Exception exception) { Console.WriteLine(exception); } foreach (var bin in result) { if (latestBin == null || bin.Timestamp.LocalDateTime > latestBin.Timestamp) { await context.TradeBins.AddAsync(new TradeBin() { Symbol = bin.Symbol, Timestamp = bin.Timestamp.UtcDateTime, Open = bin.Open.Value, High = bin.High.Value, Low = bin.Low.Value, Close = bin.Close.Value, Trades = bin.Trades, Volume = bin.Volume.Value, ForeignNotional = bin.ForeignNotional, HomeNotional = bin.HomeNotional }); } } await context.SaveChangesAsync(); } catch (Exception exception) { Console.WriteLine(exception); } } }
public void should_return_trades_bucketed() { // arrange var @params = new TradeBucketedGETRequestParams { BinSize = "1m", Symbol = "XBTUSD" }; // act var result = Sut.Execute(BitmexApiUrls.Trade.GetTradeBucketed, @params).Result.Result; // assert result.Should().NotBeNull(); result.Count.Should().BeGreaterThan(0); }