示例#1
0
        public static string ToIntervalString(this TickerInterval interval)
        {
            switch (interval)
            {
            case TickerInterval.FiveMinutes:
                return("5m");

            case TickerInterval.TenMinutes:
                return("10m");

            case TickerInterval.FifteenMinutes:
                return("15m");

            case TickerInterval.ThirtyMinutes:
                return("30m");

            case TickerInterval.FourtyFiveMinutes:
                return("45m");

            case TickerInterval.OneHour:
                return("1h");

            case TickerInterval.TwoHours:
                return("2h");

            case TickerInterval.ThreeHours:
                return("3h");

            case TickerInterval.SixHours:
                return("6h");

            case TickerInterval.TwelveHours:
                return("12h");

            case TickerInterval.TwentyFourHours:
                return("24h");

            case TickerInterval.OneDay:
                return("1d");

            case TickerInterval.SevenDays:
                return("7d");

            case TickerInterval.FourteenDays:
                return("14d");

            case TickerInterval.ThirtyDays:
                return("30d");

            case TickerInterval.NinetyDays:
                return("90d");

            case TickerInterval.ThreeHundredSixtyFiveDays:
                return("365d");
            }

            return(null);
        }
示例#2
0
        /// <summary>
        /// Get historical tickers for specific coin
        /// </summary>
        /// <param name="id">id of the coin</param>
        /// <param name="startTime">start point for historical data</param>
        /// <param name="endTime">end point for historical data</param>
        /// <param name="limit">limit of result rows (max 5000)</param>
        /// <param name="quote">returned data quote (available values: usd, btc)</param>
        /// <param name="interval">returned points interval</param>
        /// <returns></returns>
        public async Task <CoinPaprikaEntity <List <HistoricalTickerInfo> > > GetHistoricalTickerForIdAsync(string id, DateTimeOffset startTime, DateTimeOffset endTime = default, int limit = 1000, string quote = "USD", TickerInterval interval = TickerInterval.FifteenMinutes)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                throw new NotSupportedException("id must be defined");
            }

            if (limit < 1 || limit > 5000)
            {
                throw new ArgumentOutOfRangeException(nameof(limit), "limit must be between 1 and 250");
            }

            var client = BaseClient.GetClient();

            var requestUrl = $"{_apiBaseUrl}/tickers/{id}/historical".
                             AddParameterToUrl("start", startTime.ToUnixTimeSeconds()).
                             AddParameterToUrl("end", endTime == default ? DateTimeOffset.Now.ToUnixTimeSeconds() : endTime.ToUnixTimeSeconds()).
                             AddParameterToUrl("limit", limit).
                             AddParameterToUrl("quote", quote).
                             AddParameterToUrl("interval", interval.ToIntervalString());

            var request = new HttpRequestMessage()
            {
                Method     = HttpMethod.Get,
                RequestUri = new Uri(requestUrl)
            };

            var response = await client.SendAsync(request).ConfigureAwait(false);

            //var json = await response.Content.ReadAsStringAsync();

            return(new CoinPaprikaEntity <List <HistoricalTickerInfo> >(response, false, !response.IsSuccessStatusCode));
        }