/// <summary>
        /// Returns crypto rating FCAS for requested digital currency
        /// </summary>
        /// <param name="cryptoClient"></param>
        /// <param name="currency"></param>
        /// <returns></returns>
        public static async Task <CryptoRating> GetCryptoRatingAsync(this CryptoClient cryptoClient,
                                                                     DigitalCurrency currency)
        {
            var query = new Dictionary <string, string>()
            {
                { ApiQueryConstants.SymbolQueryVar, currency.ToString().Replace("_", "") },
            };

            return(await cryptoClient.RequestApiAsync(CryptoRatingParser, ApiFunction.CRYPTO_RATING, query));
        }
        /// <summary>
        /// Returns exchange rate for requested currencies pair
        /// </summary>
        /// <param name="cryptoClient"></param>
        /// <param name="fromCurrency"></param>
        /// <param name="toCurrency"></param>
        /// <returns></returns>
        public static async Task <CryptoExchangeRate> GetExchangeRateAsync(this CryptoClient cryptoClient,
                                                                           DigitalCurrency fromCurrency, PhysicalCurrency toCurrency)
        {
            var query = new Dictionary <string, string>()
            {
                { ApiQueryConstants.FromCurrencyQueryVar, fromCurrency.ToString().Replace("_", "") },
                { ApiQueryConstants.ToCurrencyQueryVar, toCurrency.ToString() }
            };

            return(await cryptoClient.RequestApiAsync(ExchangeRateParser, ApiFunction.CURRENCY_EXCHANGE_RATE, query));
        }
        /// <summary>
        /// Returns cryptocurrency time series for requested currencies pair
        /// </summary>
        /// <param name="cryptoClient"></param>
        /// <param name="fromCurrency"></param>
        /// <param name="toCurrency"></param>
        /// <param name="interval"></param>
        /// <returns></returns>
        public static async Task <CryptoTimeSeries> GetTimeSeriesAsync(this CryptoClient cryptoClient,
                                                                       DigitalCurrency fromCurrency,
                                                                       PhysicalCurrency toCurrency,
                                                                       Interval interval)
        {
            var parser = new CryptoTimeSeriesParser(interval, fromCurrency, toCurrency);

            var function = interval.ConvertToApiFunction();

            var query = new Dictionary <string, string>()
            {
                { ApiQueryConstants.SymbolQueryVar, fromCurrency.ToString().Replace("_", "") },
                { "market", toCurrency.ToString() }
            };

            return(await cryptoClient.RequestApiAsync(parser, function, query));
        }