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);
        }