Ejemplo n.º 1
0
        public async Task GetPrices()
        {
            var prices = await _api.GetPricesAsync();

            Assert.NotNull(prices);
            Assert.NotEmpty(prices);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Get all symbols.
        /// </summary>
        /// <param name="api"></param>
        /// <param name="token"></param>
        /// <returns></returns>
        public static async Task <IEnumerable <string> > SymbolsAsync(this IBinanceApi api, CancellationToken token = default)
        {
            Throw.IfNull(api, nameof(api));

            return((await api.GetPricesAsync(token).ConfigureAwait(false))
                   .Select(p => p.Symbol));
        }
        private async Task <ImmutableDictionary <string, decimal> > InitializeSymbolPrices()
        {
            try
            {
                var symbolPrices = await _binanceApi.GetPricesAsync();

                var immutableSymbolPrices = symbolPrices.ToImmutableList();

                var immutablePrices = symbolPrices.ToImmutableDictionary(s => s.Symbol, s => s.Value);

                _cache.SetSymbolPrices(immutablePrices);

                foreach (var symbolPrice in immutableSymbolPrices)
                {
                    _cache.SetSymbolPrice(symbolPrice.Symbol, symbolPrice.Value);
                }

                return(immutablePrices);
            }
            catch (Exception ex)
            {
                _cache.ClearSymbolPrices();

                _log.LogError($"Symbol Prices initialization error {ex.Message}");

                return(new Dictionary <string, decimal>().ToImmutableDictionary());
            }
        }
Ejemplo n.º 4
0
        private async Task <ImmutableDictionary <string, decimal> > InitializeSymbolPrices()
        {
            var symbolPrices = await _binanceApi.GetPricesAsync();

            var immutablePrices = symbolPrices.ToImmutableDictionary(s => s.Symbol, s => s.Value);

            _cache.SetSymbolPrices(immutablePrices);

            return(immutablePrices);
        }