Example #1
0
        private async Task DoUpdatemarketCoins()
        {
            if (FLastMarketCoinsRetrieval == DateTime.MinValue || FLastMarketCoinsRetrieval < DateTime.UtcNow.AddHours(-1))
            {
                using (var lClient = new BitfinexClient())
                {
                    var lCurrenciesResponse = await lClient.GetCurrenciesAsync();

                    var lMarketsResponse = await lClient.GetTickerAsync(symbols : "ALL");

                    var lSymbolDetails = await lClient.GetSymbolDetailsAsync();

                    if (!lCurrenciesResponse.Success || !lMarketsResponse.Success || !lSymbolDetails.Success)
                    {
                        throw new Exception("Failed to retrieve Bitfinex Markets");
                    }
                    BitfinexPair.ExchangeCurrencies = lCurrenciesResponse.Data;
                    FMarkets = lMarketsResponse.Data.Select(lMarket => new BitfinexPair(lMarket.Symbol, lSymbolDetails.Data.Where(lSymbol => string.Equals(lSymbol.Pair, lMarket.Symbol.Remove(0, 1), StringComparison.OrdinalIgnoreCase)).FirstOrDefault())).ToArray();
                }
                FLastMarketCoinsRetrieval = DateTime.UtcNow;
                FLocalCacheOfMarkets.Clear();
            }
        }